如何在Android中以编程方式识别JSON文件中的多个对象

时间:2012-04-24 06:19:07

标签: android json arrays

我有一个类似下面的JSON文件。

{
"user":
    [
        {
            "id": "1",
            "firstname":"Xyz",
        },
        {
            "id": "2",
            "firstname":"Abc",
        }           
    ],

"animal":
    [
        {
            "id": "1",
            "firstname":"Elephant",
        },
        {
            "id": "2",
            "firstname":"Horse",
        }
    ]   
}

在服务器端,他们正在使用新的父JSON对象更新此JSON文件。作为一个例子,你可以看到,有“用户”和“动物”对象。服务器可以添加另一个具有相同属性“id”和“firstname”的对象调用“birds”。

我需要的是以编程方式找出父对象并提取它们的名称。

如果JSON文件是静态文件,我可以阅读并获得输出。我在这里问的是一种查找父JSONObjects的方法。

JSONObject jsonObject = new JSONObject(uriToJsonFile);
JSONArray jsonArray = jsonObject.getJSONArray("user");

如果我能够做我要求的事情,我们就不需要在jsonObject.getJSONArray("user");中对“user”值进行硬编码,而是可以通过编程方式传递该值。

提前致谢

3 个答案:

答案 0 :(得分:2)

jsonObject.getNames(jsonObject);

这会返回对象中的所有键..希望这是你想要的......

答案 1 :(得分:0)

获取String数组并将其传递到jsonObject.getJSONArray(your array);

如果您尝试获取第一个对象,则传递

jsonObject.getJSONArray(array[pos]);

并在array{"user","animal"};

从第一个对象获取所有值后

增加pos

答案 2 :(得分:0)

JSONObject 类中有一个方法调用`names'。

JSONArray objNames = jsonObject.names();
System.out.println(objNames.toString());

运行此代码时,您可以获得以下输出

  

[ “用户”, “动物”]

显示所有父对象