如何迭代动态JSON密钥

时间:2014-03-31 22:12:30

标签: java android arrays json

我有一个看起来像这样的JSON对象:

 "Trials": {
                "Trial 1": "Trial 1",
                "Trial 2": "Trial 2",
                "Trial 3": "Trial 3",
                "Trial 4": "Trial 4",
                "Trial 5": "Trial 5"
            }

这些是动态生成的,我不确定有多少Trials可能会进入。

现在我知道如何在预期密钥时获取值,例如:

 "Person": {
                "FirstName: "Joe",
                "MiddleName": "B",
                "LastName": "Smith"
            }

我会经历每一个并且:

if (!o.isNull("FirstName")) {
    session.first_name= o.getString("FirstName");
}

但在第一个例子中,它是动态的。我无法对密钥进行严格的编码。是否有更好的方法来获取值?

注意:密钥总是与值相同。在一个完美的世界中,这只是一个正常的数组 - 但我无法控制JSON如何发送给我,所以我需要处理它,因为它在上面。

1 个答案:

答案 0 :(得分:0)

好吧,我不确定这是否是最佳解决方案,但如果您在JSON中的所有输入都像“Trials n”那么这可能会解决:

for(JSONobject o: myArrayOfJSONs){ int n = 0; boolean finished = false; while(!finished){ if(!o.isNULL("Trial "+ n){ //do some stuff n++; } else{ finished = true; } } }