如何在C#和ASP.NET中反序列化JSON值?
我需要从web URL获取一些值。 JSON如下所示:如何在C#和ASP.NET中反序列化JSON值?,c#,asp.net,json,C#,Asp.net,Json,我需要从web URL获取一些值。 JSON如下所示: {"country":{"name":"India","State":"Raj": Count :239}, "Population": 25487} 现在我想使用C#获取Count和Population的值 我尝试过使用JavaScriptSerializer()
{"country":{"name":"India","State":"Raj": Count :239}, "Population": 25487}
现在我想使用C#获取Count和Population的值
我尝试过使用JavaScriptSerializer()但是问题是它的响应时间要慢得多
请建议我一种从这个JSON字符串获取值的方法
谢谢一个选项是使用Json.NET-您也可以使用较新的类来处理Json数据。我个人使用
它是一个非常快速的JSON序列化程序/反序列化程序
我通常创建一个扩展方法以使代码更整洁:
public static string ToJson(this object _obj)
{
return JsonSerializer.SerializeToString(_obj);
}
编辑:
获取这些值的快速方法是创建一个数据类:
public class Country
{
public string name { get; set; }
public string State { get; set; }
public int Count { get; set; }
}
public class CountryInformation
{
public Country Country { get; set; }
public int Population { get; set; }
}
然后,使用ServiceStack:
void SomeFunction(string _Json)
{
var FeedResult = _Json.FromJson<CountryInformation>();
}
void SomeFunction(string\u Json)
{
var FeedResult=_Json.FromJson();
}
然后,您可以从FeedResult获得如下值:
FeedResult.Country.name 您可以使用DataContractSerialiser(理想情况下,如果您创建提要),如果您有一个格式错误的json字符串,请使用json.net,因为它可以让您一次解析一个节点的linq2json。我通常建议使用类型化的POCO,如@misterjingo。
但是,对于一次性任务,您可以使用以下方法动态解析它:
var json = "{\"country\":{\"name\":\"India\",\"State\":\"Raj\": \"Count\": 239}, \"Population\": 25487}";
var jsonObj = JsonObject.Parse(json);
var country = jsonObj.Object("country");
Console.WriteLine("Country Name: {0}, State: {1}, Count: {2} | Population: {3}",
country["name"], country["State"], country["Count"], jsonObj["Population"]);
//Outputs:
//Country Name: India, State: Raj, Count: 239 | Population: 25487
注意:要求对象属性名称为字符串,该字符串始终为双引号
ServiceStack的JsonSerializer也是.NET最快的Json序列化程序。也是ServiceStack的最新版本。文本带有ToJson()
和FromJson()
扩展方法:)先生,如果我从web url www.xyz.com获取Json,你能为我写c代码吗。。。。。假设它给出了上面所示的JSON。现在,我如何使用ServiceStack获取值并将其打印在标签中(例如)。。。希望您能为我编写更多的代码…Thank-1问题从改为问题是它的响应时间要慢得多。请建议我一种从这个JSON字符串到的方法。先生,您能为我写c#代码吗
虽然我已经写了,但是先生,一些JSON值包含[{JSON值}]方括号,在这种情况下,它抛出一个异常。那么如何处理呢?@iKunu如果它被包装在[]
括号中,那么您将需要使用json.FromJson()
。