Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从JSON中的对象数组中提取对象?_Javascript_Json - Fatal编程技术网

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

Javascript 如何从JSON中的对象数组中提取对象?,javascript,json,Javascript,Json,我有一个带有对象数组的简单json,我设法提取了记录,但它带有方括号,我只想要对象 var res={ “总尺寸”:3, “完成”:正确, “记录”:[{ “Id”:“1”, “案件编号”:“1”, “主题”:“测试1” }, { “Id”:“2”, “案件编号”:“2”, “主题”:“测试2” }, { “Id”:“3”, “案件编号”:“3”, “主题”:“测试3” }] } var extractedRecord=res.records.slice(0,1); 预期结果: {

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

var res={
“总尺寸”:3,
“完成”:正确,
“记录”:[{
“Id”:“1”,
“案件编号”:“1”,
“主题”:“测试1”
}, {
“Id”:“2”,
“案件编号”:“2”,
“主题”:“测试2”
}, {
“Id”:“3”,
“案件编号”:“3”,
“主题”:“测试3”
}]
}
var extractedRecord=res.records.slice(0,1);
预期结果:

  {
    "Id": "1",
    "CaseNumber": "1",
    "Subject": "test1"
  }
实际结果:

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

看看这个。

只需执行
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”}
const data=res.records[0]

控制台日志(数据)
Arrray.prototype.slice()
作为其状态,从原始数组返回一个新数组

来自MDN(我的重点):

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

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

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

了解。关于数组,一般来说。只需使用
res.records[0]
为什么我的问题被否决了?至少为我今后的案例提供一些建议你需要
.slice()
?@axiac不需要,但基于OP上下文的回答请提供一些解释,否则OP无法知道他们做错了什么。他们没有做错任何事,但这是另一种实现问题答案的方法,也可以不使用切片方法获得答案。这是唯一正确的答案,因为在中,使用
slice()没有任何意义
当您只想访问数组元素时。@MichałSadowski是和否。您是对的,这个答案显示了实现所需输出的最短路径。但是,就OP对
slice()
如何工作表示困惑而言,值得解释这种错误思维。@Utkanos是正确的,但我认为指出如何访问数组元素也很重要。我接受了这个答案,而不是其他答案,因为@Utkanos提供了解释,而不仅仅是代码。干杯