我想知道如果我在JavaScript中有密钥,我将如何获得下一个JSON项目。例如,如果我提供密钥' Josh'我怎么能得到安妮的内容?以及关键的' Annie'?我是否必须在数组中处理JSON并从那里提取?
此外,我认为有一个适当的术语可以将数据从一种类型转换为另一种类型。任何人都知道它是什么......这只是我的舌尖!
{
"friends": {
"Charlie": {
"gender": "female",
"age": "28"
},
"Josh": {
"gender": "male",
"age": "22"
},
"Annie": {
"gender": "female",
"age": "24"
}
}
}
答案 0 :(得分:8)
在JavaScript中,不保证对象属性的顺序(ECMAScript Third Edition (pdf):)
4.3.3对象对象是Object类型的成员。它是一个无序的属性集合,每个属性都包含一个原语 价值,对象或功能。存储在属性中的函数 对象称为方法。
如果订单不能得到保证,您可以执行以下操作:
var t = {
"friends": {
"Charlie": {
"gender": "female",
"age": "28"
},
"Josh": {
"gender": "male",
"age": "22"
},
"Annie": {
"gender": "female",
"age": "24"
}
}
};
// Get all the keys in the object
var keys = Object.keys(t.friends);
// Get the index of the key Josh
var index = keys.indexOf("Josh");
// Get the details of the next person
var nextPersonName = keys[index+1];
var nextPerson = t.friends[nextPersonName];
如果订单有问题,我建议使用另一个数组来保存名称["Charlie", "Josh", "Annie"]
的顺序,而不是使用Object.keys()
。
var t = ...;
// Hard code value of keys to make sure the order says the same
var keys = ["Charlie", "Josh", "Annie"];
// Get the index of the key Josh
var index = keys.indexOf("Josh");
// Get the details of the next person
var nextPersonName = keys[index+1];
var nextPerson = t.friends[nextPersonName];