如何从JSON中的对象数组中提取对象?

时间:2019-12-30 12:35:23

标签: javascript json

我有一个带有对象数组的简单json,我设法提取了记录,但是它带有方括号,我只想要对象。

var res = {
  "totalSize": 3,
  "done": true,
  "records": [{
    "Id": "1",
    "CaseNumber": "1",
    "Subject": "test1"
  }, {
    "Id": "2",
    "CaseNumber": "2",
    "Subject": "test2"
  }, {
    "Id": "3",
    "CaseNumber": "3",
    "Subject": "test3"
  }]
}

var extractedRecord = res.records.slice(0, 1);

所需结果:

  {
    "Id": "1",
    "CaseNumber": "1",
    "Subject": "test1"
  }

实际结果:

[
  {
    "Id": "1",
    "CaseNumber": "1",
    "Subject": "test1"
  }
]

请参阅此jsfiddle

3 个答案:

答案 0 :(得分:1)

只需res.records.slice(0, 1)[0]

var res = {"totalSize":3,"done":true,"records":[{"Id":"1","CaseNumber":"1","Subject":"test1"},{"Id":"2","CaseNumber":"2","Subject":"test2"},{"Id":"3","CaseNumber":"3","Subject":"test3"}]}

var extractedRecord = res.records.slice(0, 1)[0];
console.log(extractedRecord);

您还可以使用传播语法:

var res = {"totalSize":3,"done":true,"records":[{"Id":"1","CaseNumber":"1","Subject":"test1"},{"Id":"2","CaseNumber":"2","Subject":"test2"},{"Id":"3","CaseNumber":"3","Subject":"test3"}]}

var extractedRecord = res.records.slice(0, 1);
console.log(...extractedRecord);

答案 1 :(得分:1)

Arrray.prototype.slice(),如其documention所述,从原始数组返回一个新数组。

根据MDN(我的重点):

  

slice()方法返回数组一部分的浅表副本   放入从开始到结束选择的新数组对象(不包括结束)   其中begin和end表示该数组中项目的索引。的   原始数组将不会被修改。

知道这一点,得到一个返回的数组也就不足为奇了(即,用[]包围的对象)。因此,您只需要提取其中的唯一项目:

var extractedRecord = res.records.slice(0, 1)[0];

答案 2 :(得分:0)

尝试此代码。它将对您有用。

var res = {"totalSize":3,"done":true,"records":[{"Id":"1","CaseNumber":"1","Subject":"test1"},{"Id":"2","CaseNumber":"2","Subject":"test2"},{"Id":"3","CaseNumber":"3","Subject":"test3"}]}

const data = res.records[0]
console.log(data);