从字符串中提取数据

时间:2016-04-28 19:24:26

标签: c# json

我有一个数据字符串

 [{"Name":"Jon","Age":"30"},{"Name":"Smith","Age":"25"}]

如何从中提取数据?

请建议我。

2 个答案:

答案 0 :(得分:1)

您需要将JSON反序列化到C#对象中。 Newtonsoft.Json是一个使用JSON的优秀库。

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

string json = @"{"Name":"Jon","Age":"30"}";

Person x = JsonConvert.DeserializeObject<Person>(json);

string name = x.Name;

答案 1 :(得分:1)

使用内置.NET类,您可以使用System.Web.Extensions

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

然后在您的代码中,您可以反序列化JSON,即

public void GetPersonFromJson(string json)
{
    //...
    json = " [{\"Name\":\"Jon\",\"Age\":\"30\"},{\"Name\":\"Smith\",\"Age\":\"25\"}]";

    JavaScriptSerializer oJS = new JavaScriptSerializer();
    Person[] person = oJS.Deserialize<Person[]>(json);
    //...
}

或使用NewtonSoft Nuget包:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

再次在您的代码中,您可以使用NewtonSoft库进行反序列化,即

public void GetPersonFromJson(string json)
{
    //...
    json = " [{\"Name\":\"Jon\",\"Age\":\"30\"},{\"Name\":\"Smith\",\"Age\":\"25\"}]";
    var people = JsonConvert.DeserializeObject<List<Person>>(json);
    //...
}