如何从嵌入式json中获取数据,而这些json在android中没有名称?

时间:2014-06-06 11:16:35

标签: android json parsing cordova gson

我有一个类似下面的JSON。 这是样本json ..我有这样的json结构。如果这个json有任何错误,请忽略它。

[
[
"{"category_id":1,"category_name":"1Appetizers","image_id":0}",
"{"category_id":13,"category_name":"Buffet","image_id":0}"
],

[
"{"subcategory_id":1,"category_id":12,"subcategory_name":"Beer","image_id":0}",
"{"subcategory_id":2,"category_id":12,"subcategory_name":"Wine","image_id":0}"
],
[
"{"menucategory_id":1,"menucategory_id":12,"menucategory_name":"dosa","image_id":0}",
"{"menucategory_id":2,"menucategory_id":12,"menucategory_name":"idly","image_id":0}"
]
]

我如何在android中解析这个JSON。我想在一个页面中显示category_name,在其他页面中显示其他详细信息。对象没有名称。

2 个答案:

答案 0 :(得分:1)

与其他评论者提到的一样,这不是真正的JSON。 但无论如何,这是试图回答你的问题。

我会创建表示您要序列化和反序列化并形成JSON的数据的对象。看起来你会有对象Category,Subcategory和MenuCategory。那么你可能会有另一个对象来保存这三个对象的列表。

然后我会使用GSON来序列化和反序列化你的对象。让它为你做繁重的工作。

答案 1 :(得分:1)

尝试以下代码。它可能会帮助你

    // say you have your json in a String named jsonString
    try
    {
        JSONArray array = new JSONArray(jsonString);
        JSONArray firstJsonArray = array.getJSONArray(0);
        JSONArray secondJsonArray = array.getJSONArray(1);
        JSONArray thirdJsonArray = array.getJSONArray(2);
        for (int i = 0; i < 2; i++)
        {
            JSONObject firstJsonObject = firstJsonArray.getJSONObject(i);
            JSONObject secondJsonObject = secondJsonArray.getJSONObject(i);
            JSONObject thirdJsonObject = thirdJsonArray.getJSONObject(i);
            String categoryName = firstJsonObject.getString("category_name");
            String subcategoryName = secondJsonObject.getString("subcategory_name");
            String menucategoryName = thirdJsonObject.getString("menucategory_name");

            // Now here you can use these values to do anything
        }
    }
    catch (JSONException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }