如何获取下一个JSON项目

时间:2016-01-27 04:29:09

标签: javascript json

我想知道如果我在JavaScript中有密钥,我将如何获得下一个JSON项目。例如,如果我提供密钥' Josh'我怎么能得到安妮的内容?以及关键的' Annie'?我是否必须在数组中处理JSON并从那里提取?

此外,我认为有一个适当的术语可以将数据从一种类型转换为另一种类型。任何人都知道它是什么......这只是我的舌尖!

{
    "friends": {
        "Charlie": {
            "gender": "female",
            "age": "28"
        },
        "Josh": {
            "gender": "male",
            "age": "22"
        },
        "Annie": {
            "gender": "female",
            "age": "24"
        }
    }
}

1 个答案:

答案 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];