使用 Newtonsoft.Json.JsonConvert.DeserializeObject 反序列化来自 USPS CityStateLookup 的响应时出现问题

比克福德

我正在尝试解析来自 USPS CityStateLookup API 的响应,但我似乎没有正确对其进行建模,因为我在解析值时遇到“{”意外字符:<。路径 '', line 0, position 0."}" while parsing" 在 DeserializeObject 调用开始时出错

我的代码是:

Class CityStateLookupResponse
    Property ZipCodeList As List(Of ZipCode)
End Class

 Class ZipCode
    Property Zip5 As String
    Property City As String
    Property State As String
 End Class


Private Async Function GetCityStateFromZipAsync(byval Zip5Code as string) as threading.tasks.task(of CityStateLookupResult)

 Dim result As New CityStateLookupResponse

 Dim client As New HttpClient() With {
        .BaseAddress = New Uri("http://production.shippingapis.com/ShippingAPI.dll")
    }

    Dim arguments As String = "?API=CityStateLookup&XML=<CityStateLookupRequest USERID=""{0}""><ZipCode ID= ""{1}""><Zip5>{2}</Zip5></ZipCode></CityStateLookupRequest>"
    arguments = String.Format(arguments, "<My User ID>", 0, Zip5Code)

    response = Await client.GetAsync(arguments)

    If Not response.IsSuccessStatusCode Then
        Return result
    End If

    myContent = Await response.Content.ReadAsStringAsync

    ' vvvv  THIS IS THE ERROR LINE  vvvv
    result = Newtonsoft.Json.JsonConvert.DeserializeObject(Of CityStateLookupResponse)(myContent) 
end function

浏览器中同一 API 调用返回的 XML 是:

<CityStateLookupResponse>
    <ZipCode ID="0">
        <Zip5>55016</Zip5>
        <City>COTTAGE GROVE</City>
        <State>MN</State>
     </ZipCode>
 </CityStateLookupResponse>

我在 CityStateLookupResponse 的类定义中做错了什么?(或者有更好的方法来解决这个问题吗?)

亚历山大·希金斯

有一段时间没看过 VB,但似乎您使用了错误的方法来反序列化 XML。您使用的方法适用于 JSON。

对于 XML 反序列化,请使用DeserializeXmlNode

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档