简体   繁体   English

如何使用对象数组读取 json

[英]How to read json with an array of objects

I'm trying to read a json coming from backend (C#).But I get TypeError: Cannot read property '0' of undefined.我正在尝试读取来自后端(C#)的 json。但我得到 TypeError: Cannot read property '0' of undefined。

Here is what I have tried so far这是我到目前为止尝试过的

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

The data looks like this数据看起来像这样

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

Thanks in advance!提前致谢!

Here is an example of using Newtonsoft.Json to deserialize JSON.这是使用Newtonsoft.Json反序列化 JSON 的示例。

First you can make some classes to map the JSON:首先,您可以对 map 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; }
}

Then you deserialize with JsonConvert.DeserializeObject :然后你用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);

And fetch your content:并获取您的内容:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM