如何在C#和ASP.NET中反序列化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()

我需要从web URL获取一些值。 JSON如下所示:

{"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()