【问题标题】:How to read json with an array of objects如何使用对象数组读取 json
【发布时间】:2019-11-03 12:03:54
【问题描述】:

我正在尝试读取来自后端 (C#) 的 json。但我得到 TypeError: Cannot read property '0' of undefined。

这是我迄今为止尝试过的

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}"

提前致谢!

【问题讨论】:

  • 通常json内容在data中。尝试做resp.data.Result[0]
  • 我已经尝试过了。我得到同样的错误@anny123
  • 1.发布您如何提出请求。也尝试记录 response.data 并查看结果/在此处发布 2. 向postman 发出请求,看看您是否收到响应
  • API 很好,我得到数据,我发布的方式也很好,只是读取数据是问题

标签: c# json api


【解决方案1】:

这里是使用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

【讨论】:

    猜你喜欢
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    • 2019-01-20
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多