C# 使用JavaScriptSerializer ASP.NET反序列化JSON片段
是否可以使用反序列化一段JSON?我不需要JSON中的所有数据,只需要一个部分 JSON数据如下所示:C# 使用JavaScriptSerializer ASP.NET反序列化JSON片段,c#,asp.net,json,C#,Asp.net,Json,是否可以使用反序列化一段JSON?我不需要JSON中的所有数据,只需要一个部分 JSON数据如下所示: // **** snip **** { "response": { some data } }, "forecast": { "txt_forecast": { "date": "7:00 AM PST", "forecastday": [ // <-- section needed {
// **** snip ****
{
"response": {
some data
}
},
"forecast": {
"txt_forecast": {
"date": "7:00 AM PST",
"forecastday": [ // <-- section needed
{
some data....
},
.........
{
some data....
}
]
},
"simpleforecast": {
"forecastday": [
more data
]
}
// **** snip ****
像这样的东西对你有用吗
var dictObj = new JavaScriptSerializer().Deserialize<Dictionary<string, object>>(jsonData);
var jsonNew = new JavaScriptSerializer().Serialize(dictObj["forcast"]);
var dictObj=newJavaScriptSerializer()。反序列化(jsonData);
var jsonNew=new JavaScriptSerializer().Serialize(dictObj[“forcast”]);
如果您需要验证JSON是否有效,请使用此链接确认JSON是否有效,因为您不想构建所表示的整个对象,您很可能需要解析字符串以仅获取所需的部分。一旦拥有了节本身,将其反序列化为对象JavaScriptSerializer
不包含任何只解析特定节的方法。@DJKRAZE JSON有效,它是weatherunderground api。@Jesse,所以我只需要剪切需要的部分,并将其反序列化
Skomi,如果正确,请尝试我提供的解决方案,这将为您提供forcast:
可用的数据。我刚刚在三个“级别”(forecast->txt\U forecast->forecastday)中实现了三次这个片段。这会减慢我的应用程序吗?这是你必须测试的东西。。JSON重量很轻,不应该增加太多额外的开销来降低速度。我认为它应该会加快速度。很高兴我能为您提供一个快速有效的解决方案。。
var jsonData = new WebClient().DownloadString(url);
JavaScriptSerializer ser = new JavaScriptSerializer();
forecast_class forecast = ser.Deserialize<forecast_class>(jsonData);
var dictObj = new JavaScriptSerializer().Deserialize<Dictionary<string, object>>(jsonData);
var jsonNew = new JavaScriptSerializer().Serialize(dictObj["forcast"]);