如何使用对象数组读取json

时间:2019-11-03 12:03:54

标签: c# json api

我正在尝试读取来自后端(C#)的json。但是我收到TypeError:无法读取未定义的属性'0'。

这是我到目前为止尝试过的

resp.Result[0].EMP_CODE
resp.content.[Result][0].EMP_CODE

数据看起来像这样

content: "{"Result":[{
"EMP_CODE":10724242,
"EMP_NAME":"Jack",
"NAT_CODE":"1",
"DEPT_CODE":"35",
"MOBILE_NO":"571454582"}],
"successFlg":1,"errMsg":null}"

谢谢!

1 个答案:

答案 0 :(得分:0)

这里是使用Newtonsoft.Json来反序列化JSON的示例。

首先,您可以创建一些类来映射JSON:

public class Results
{
    [JsonProperty("Result")]
    public List<Employee> Result { get; set; }

    [JsonProperty("successFlg")]
    public long SuccessFlag { get; set; }

    [JsonProperty("errMsg")]
    public string ErrorMessage { get; set; }
}

public class Employee
{
    [JsonProperty("EMP_CODE")]
    public long EmpCode { get; set; }

    [JsonProperty("EMP_NAME")]
    public string EmpName { get; set; }

    [JsonProperty("NAT_CODE")]
    public long NatCode { get; set; }

    [JsonProperty("DEPT_CODE")]
    public long DeptCode { get; set; }

    [JsonProperty("MOBILE_NO")]
    public long MobileNumber { get; set; }
}

然后您使用JsonConvert.DeserializeObject反序列化:

using Newtonsoft.Json;

// Other code

var json = @"{ ""Result"":[{
               ""EMP_CODE"":10724242,
               ""EMP_NAME"":""Jack"",
               ""NAT_CODE"":""1"",
               ""DEPT_CODE"":""35"",
               ""MOBILE_NO"":""571454582""}],
               ""successFlg"":1,""errMsg"":null}";

var deserializedJson = JsonConvert.DeserializeObject<Results>(json);

然后获取您的内容:

Console.WriteLine(deserializedJson.Result[0].EmpCode);
// 10724242