可能使用JavaScriptSerializer
僅僅是JSON的一個片段Deserialize
?我不需要來自JSON的所有數據,只是一個部分。使用JavaScriptSerializer反序列化JSON片段ASP.NET
的JSON數據是這樣的:
// **** snip ****
{
"response": {
some data
}
},
"forecast": {
"txt_forecast": {
"date": "7:00 AM PST",
"forecastday": [ // <-- section needed
{
some data....
},
.........
{
some data....
}
]
},
"simpleforecast": {
"forecastday": [
more data
]
}
// **** snip ****
這是我需要解析部分:
"forecastday": [ // <-- section needed
{
some data....
},
.........
{
some data....
}
]
我試着用forecast
對象(整個數據的片段),但它返回null。
var jsonData = new WebClient().DownloadString(url);
JavaScriptSerializer ser = new JavaScriptSerializer();
forecast_class forecast = ser.Deserialize<forecast_class>(jsonData);
你確定的JSON是有效的,如果你需要驗證JSON是合法使用這個鏈接[JSONLint(HTTP:// jsonlint。 com /) – MethodMan 2013-02-20 20:24:03
由於您不想構建* whole *對象,您很可能必須解析字符串才能獲取所需的部分。一旦你有了這個部分,'反序列化'成一個對象。 'JavaScriptSerializer'不包含任何方法來解析一個特定的部分。 – Jesse 2013-02-20 20:24:33
@DJKRAZE JSON是有效的,它是weatherunderground api。 – skomi 2013-02-20 20:27:23