可能使用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