如何从JSON获取数据

时间:2013-05-30 06:22:39

标签: android json parsing android-layout android-listview

我有来自JSON的以下数据

{
        "MenuName": "starter dish",
        "SubMenu": [
            "pizza dish1",
            "pizza dish2"
        ],
        "Price": [
            "100",
            "110"
        ]
    },

从这里我可以轻松地从“Menuname”键获取数据作为入门菜,但是当我从“Submenu”获取数据时,我得到整个字符串为["pizza dish1", "pizza dish2"]

请建议我区分pizza dish1 and pizza dish2

6 个答案:

答案 0 :(得分:4)

SubmenuPrice不是字符串JSONArray因此您需要使用for-loop来获取Submenu JSONArray中的所有值为:

JSONArray jsonsubmenu=yourjsonobject.getJSONArray("Submenu");

  for(int i=0;i < jsonsubmenu.length();i++){     
     // get all values from jsonsubmenu JSONArray..
      String str_value=jsonsubmenu.optString(i);
      ....
   }

答案 1 :(得分:2)

试试这个

          for (int i = 0; i < jsonArray.length(); i++) {
             jsonArray.getJSONObject(i).getInt("SubMenu");
             }

答案 2 :(得分:2)

您可以使用this link为您的回复创建POGO课程。它会自动为您的回复生成类。

使用Google GSON库来解析您的回复。

或者你可以简单地创建一个JSON数组或对象来解析它。在您的情况下,它是JSON对象或JSON数组。

答案 3 :(得分:0)

你好,在那个senarerio你必须使用

    JSONArray _submenu = object.getJSONArray("SubMenu");
        for (int i = 0; i < _submenu.length(); i++) {
            String text = _submenu.getString(i);
        }
        JSONArray _price = object.getJSONArray("Price");
        for (int i = 0; i < _price.length(); i++) {
            String text = _price.getString(i);
        }

答案 4 :(得分:0)

您可以检索数组值并将其存储在string []中,并根据需要使用它们。即,如下..

try {
            JSONObject jObject = new JSONObject(jsonString);
            JSONArray jSubmenu = jObject.getJSONArray("SubMenu");
            subMenu = new String[jSubmenu.length()];
            for (int i = 0; i < subMenu.length; i++) {
                subMenu[i] = jSubmenu.getString(i);
            }
            JSONArray jPrice = jObject.getJSONArray("Price");
            price = new String[jPrice.length()];
            for (int i = 0; i < price.length; i++) {
                price[i] = jPrice.getString(i);
            }

        } catch (Exception e) {
            // TODO: handle exception
        }

答案 5 :(得分:0)

只需快速阅读 - 阅读并使用GSON。

对于简单的小型工作,我发现它是最好的。对于复杂或长期结构而言,这不是最快的运行,但在开发方面却非常快。

以下是链接:google-gson