我試圖反序列化JSON一些在C#中,但是當我運行我的程序,我收到此錯誤信息:反序列化JSON在C#中的錯誤
我已經通過我的代碼看起來,並且我找不到一個「<」,並且我去了json來自的網址: http://forecast.weather.gov/MapClick.php?lat=47.1211&lon=-88.5694&FcstType=json, 並且沒有「<」字符。我使用json2csharp.com將其轉換爲C#類,並且所有內容都很好。有什麼想法嗎?這裏是我嘗試做這一切的我的代碼部分:
var http = new HttpClient();
var url = "http://forecast.weather.gov/MapClick.php?lat=47.1211&lon=-88.5694&FcstType=json";
var response = await http.GetAsync(url);
var result = await response.Content.ReadAsStringAsync();
var serializer = new DataContractJsonSerializer(typeof(RootObject2));
var ms = new MemoryStream(Encoding.UTF8.GetBytes(result));
var data = (RootObject2)serializer.ReadObject(ms);
return data;
與其訪問您從中獲得的網址,您爲什麼不在調試器中查看實際收到的內容?也許在服務器上有一些東西給你不同的結果,當你從C#中獲取比在瀏覽器中訪問它時。理想情況下,提供[mcve]。 –
我們可以看到只讀取json的部分轉換爲字符串和反序列化調用的行嗎? –
我想說,從http://forecast.weather.gov/MapClick.php?lat=47.1211&lon=-88.5694&FcstType=xml取得xml的合理機會,而不是http:// forecast的json。 weather.gov/MapClick.php?lat=47.1211&lon=-88.5694&FcstType=json,但Jon是(當然!)絕對正確 - 更好地調試你實際試圖連載的內容,而不是猜測 –