我有一个JSON文档,我正在尝试从该JSON文档中提取单个数据。但是,当我尝试提取时,我得到的只是一些不在文档中的数字。
这是文档:
user: [{
serialNo: 1,
details: [{ name: "John",
job: "Receptionist" }]
},
{
serialNo: 2,
details: [{
name: "Alan",
job: "Salesman"
}]
}
]
所以我尝试这样做以提取名称“ Alan”
using (var response = (HttpWebResponse)request.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
var js = new JavaScriptSerializer();
var objText = reader.ReadToEnd();
var data = objText[1][0].name;
}
}
它返回给我的只是一个没有意义的数字,例如'123'或'467'等。
答案 0 :(得分:4)
看看Json.NET - Newtonsoft。它也是一个可以在NuGet中找到的软件包,只需输入Newtonsoft :)。
然后您可以像这样建立模型:
第一个解决方案:
pi
第二种解决方法:
using Newtonsoft.Json;
using System;
namespace UsersJSON
{
public class UsersRepository
{
public User[] Users;
}
public class User
{
public int serialNo;
public string[] details;
}
class Program
{
static void Main(string[] args)
{
var json = @"{
users: [
{
serialNo: 1,
details: ['John', 'Receptionist']
},
{
serialNo: 2,
details: ['Alan', 'Salesman']
}]
}";
var usersList = JsonConvert.DeserializeObject<UsersRepository>(json);
Console.WriteLine(usersList.Users[0].details[0]); // prints "John"
Console.ReadLine();
}
}
}
两者都要求您稍微更改JSON输出。