用于从 JSON 解析特定字段的 Javascript 方法 [重复]

Posted

技术标签:

【中文标题】用于从 JSON 解析特定字段的 Javascript 方法 [重复]【英文标题】:Javascript method for parsing specific fields from JSON [duplicate] 【发布时间】: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 给了我第四个列表我希望将所有字段作为一个数组 【参考方案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 )

【讨论】:

以上是关于用于从 JSON 解析特定字段的 Javascript 方法 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 json 响应中获取特定的字段值?

从 JSON 字符串到字典的简单解析器

使用 unmarshal 从响应中获取特定的 JSON 字段

如何从 json 数据中读取特定字段? [关闭]

如何通过key:value从json对象中获取特定字段?

如何从多个JSON对象python的特定键中解析值