我有一个看起来像这样的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
如何发送给我,所以我需要处理它,因为它在上面。
答案 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;
}
}
}