【问题标题】:Javascript method for parsing specific fields from JSON [duplicate]用于从 JSON 解析特定字段的 Javascript 方法 [重复]
【发布时间】:2018-10-09 12:00:02
【问题描述】:

利用 javascript 解析这个 JSON 响应的最佳方法是什么:

{
    "records":[{
         "id":"recV4gf3nPUzO980w",
         "fields":{
            "truck name":"Darla's dumpling cart",
            "address":"150 W 57th St, New York, NY"
         },
         "createdTime":"2018-04-27T22:48:13.000Z"
    }]
} 

所以只返回“字段”数据,这是记录中只有一条记录的表示,我需要创建 obj.records.fields ,其中所有字段都显示为数组。

【问题讨论】:

  • obj.records[0].fields
  • 我认为重要的是要在这里明确一点,因为这已经是一个 JavaScript 对象(至少在您发布的代码中),所以不需要解析,只需像 @CertainPerformance 演示的那样进行简单的属性访问。如果整个代码是 String 类型,那么您需要使用 JSON.parse(rawJsonString) 来创建您的对象,然后使用属性访问。
  • 最好将您的问题编辑为:var obj = { ... }var jsonString = "{ ... }"
  • 您还应该澄清数组records 是否有多个值。您想要一组“字段”对象还是总是只有一个?
  • 回答马克,是的记录将不止一个,所以数据 obj 可能是 10 条记录,所有记录的结构都相同,我需要遍历每个字段,所以 obj.records[0]。 fields 确实给了我第一个字段,但 obj.records[3].fields 给了我第四个列表我希望将所有字段作为一个数组

标签: javascript json parsing


【解决方案1】:

你必须解析响应Json,然后找到值

var obj = JSON.parse(response);
var fields=obj.records[0].fields;

【讨论】:

    【解决方案2】:

    使用 JavaScript 函数 JSON.parse() 将文本转换为 JavaScript 对象:

    var obj = JSON.parse('{ "name":"John", "age":30, "city":"New York"}');
    

    确保文本以 JSON 格式编写,否则会出现语法错误。

    【讨论】:

      【解决方案3】:

      JSON.parse reviver parameter 可用于获取特定值:

      var fields, j = `{ "records":[{ "id":"recV4gf3nPUzO980w", "fields":{ "truck name":"Darla's dumpling cart", "address":"150 W 57th St, New York, NY" }, "createdTime":"2018-04-27T22:48:13.000Z" }] }`
      
      JSON.parse(j, (key, value) => key === 'fields' ? (fields = value) : value)
      
      console.log( fields )

      【讨论】:

        猜你喜欢
        • 2021-11-22
        • 2017-04-06
        • 2012-04-10
        • 2017-01-09
        • 2017-12-27
        • 2016-02-01
        • 2018-09-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多