Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.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获取数组内对象的值_Javascript_Arrays - Fatal编程技术网

使用javascript获取数组内对象的值

使用javascript获取数组内对象的值,javascript,arrays,Javascript,Arrays,如果我有这个: { "data": [{ "id": "4831", "name": "Rui Vasco Martins", "nickname": "rvgmartins", "money_start": "10200", "balance": "8000" }] } 如何获取data->id,data->name等的值?数据是多个值。这意味着它是一个对象数组。没有数据->id之类的东西,只有数据[n]->id。在这种情况下,您可能需要所有可

如果我有这个:

{
  "data": [{
    "id": "4831",
    "name": "Rui Vasco Martins",
    "nickname": "rvgmartins",
    "money_start": "10200",
    "balance": "8000"
  }]
}

如何获取
data->id
data->name
等的值?

数据是多个值。这意味着它是一个对象数组。没有数据->id之类的东西,只有数据[n]->id。在这种情况下,您可能需要所有可能的id,您可以使用传统的for循环或其他方法来实现

var i =0;
var total = object.data.length;
var ids = [];
for(; i < total; i++) {
   ids.push( data[ i ].id );
}
console.log(ids);
var i=0;
var total=object.data.length;
var-id=[];
对于(;i
如果您确定只有一个数据条目并且将始终存在,那么您也可以直接转到
object.data[0].id

请注意,“object”是包含JSON的变量:)

下一次,这里有一个小提示:


希望有帮助

您的对象包含一个数组,因此您需要使用正确的索引来进一步深入研究对象;您的id和名称恰好位于第一个数组中,因此我们使用
obj.data[0]

var obj = {"data":[{"id":"4831","name":"Rui Vasco Martins","nickname":"rvgmartins","money_start":"10200","balance":"8000","profit":"5010","nreload":"1","deal_id":"4813","created_at":"2015-05-27 12:54:33","updated_at":"2015-07-21 22:31:47"}],"status":200,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"url":"services/dashboard","headers":{"Accept":"application/json, text/pla`in, */*"}},"statusText":"OK"}
您可以使用点或方括号表示法来进一步标识对象属性,以下是点表示法:

var data_id = obj.data[0].id; // "4831"
var data_name = obj.data[0].name; // "Rui Vasco Martins"
var data_id = obj.data[0]['id']; // "4831"
var data_name = obj.data[0]['name']; // "Rui Vasco Martins"
以下是方括号表示法:

var data_id = obj.data[0].id; // "4831"
var data_name = obj.data[0].name; // "Rui Vasco Martins"
var data_id = obj.data[0]['id']; // "4831"
var data_name = obj.data[0]['name']; // "Rui Vasco Martins"

由于
数据中有一个数组,您可以执行以下操作:
var myJson={
“数据”:[{
“id”:“4831”,
“姓名”:“鲁伊·瓦斯科·马丁斯”,
“昵称”:“rvgmartins”,
“金钱开始”:“10200”,
“余额”:“8000”,
“利润”:“5010”,
“nreload”:“1”,
“交易id”:“4813”,
“创建时间”:“2015-05-27 12:54:33”,
“更新时间:”“2015-07-21 22:31:47”
}],
“地位”:200,
“配置”:{
“方法”:“获取”,
“transformRequest”:[null],
“transformResponse”:[null],
“url”:“服务/仪表板”,
“标题”:{
“接受”:“application/json,text/plain,*/*”
}
},
“状态文本”:“确定”
}

document.write('id:'+myJson.data[0].id+'
name:'+myJson.data[0].name)首先,让我们了解您的问题。应注意的事项:

  • 你有一个JSON,它在一个变量里面,我假设这个变量是
    foo
  • Javascript中没有
    data->id
    这样的东西。如果您有一个名为
    data
    的对象,并且它有一个名为
    id
    的成员,那么您将其引用为
    data.id
  • name
    位于数组中。数组的元素由索引引用,索引从0开始,因此,标记为
    data
    的数组是一个具有单个元素的数组,该元素是第0个元素
因此,您可以通过
foo.data[0].id获取
id
,也可以通过
foo.data[0].name获取
name
。但是,就其本身而言,没有任何东西会强制数组只有一个元素。如果有更多的元素,您需要能够以某种方式决定您感兴趣的元素的
id
name
。此外,您的数组根本不需要强制包含元素


每当你看到这样一个JSON,数组都被括在括号内,对象被括在括号内。

一个包含数组和对象的对象…好的,对不起,我正在编辑。那么我该怎么做呢?考虑到OPs问题,这个答案是正确的,但它可能不会在所有用例中都像预期的那样工作。取决于数据包含的内容。如果它的数组中包含多个对象怎么办?见@Bene answer我想这将在后续问题中解决;我只回答问题。JS linter更喜欢点符号,以防OP接受这个答案!