如何获取JSON结构中被包裹在数组内的对应字段值?
解决方法
首先需要先修正你给出的JSON语法错误:JSON 中数组[]仅用于存储有序值列表,不支持"key": "value"格式的键值对结构,你示例中cant对应的值应该为对象{},才符合语法规范。
以下分两种常见的合法结构给出取值方法:
情况1:cant对应的值为对象(最符合你需求的场景)
修正后的合法代码如下:
// 原[]改为{},生成合法JSON字符串 const dataStr = '{"cant": {"give": "everything", "cause": "its private"} }'
取值步骤:
- 先将JSON字符串反序列化为JS对象
- 按层级读取对应属性即可
const data = JSON.parse(dataStr) // 按层级读取cant下的give属性 const target = data.cant.give console.log(target) // 输出:everything
情况2:cant确实为数组,内部包含目标对象
如果你的实际数据结构是cant对应数组,数组元素为包含目标属性的对象,示例如下:
const dataStr = '{"cant": [{"give": "everything", "cause": "its private"}] }'
取值时需要先指定数组下标,再读取属性:
const data = JSON.parse(dataStr) // 数组下标从0开始,先取第一个数组元素,再读give属性 const target = data.cant[0].give console.log(target) // 输出:everything
内容的提问来源于stack exchange,提问作者user15441631
相关产品推荐
相关产品推荐

