用于从 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 方法 [重复]的主要内容,如果未能解决你的问题,请参考以下文章