解析json字符串时的JSONException:没有值

时间:2013-09-24 11:24:42

标签: android json

您好我正在尝试解析json字符串,但是获取jsonexception:找不到产品的值,我将产品视为jsonobject,下面是我的json代码

{
    "Product": {
        "Budget": {
            "Value": {
                "Cake": 200,
                "butter": 757993,
                "Gelsd": 404130,
                "Yeast": 404130,
                "Yeas": 43379276,
                "Gels": 1777776,

            },
            "Vol": {
                "Cake": 27899,
                "butter": 1266,
                "Gelsd": 2032,
                "Yeast":404130,
                "Yeas": 985721,
                "Gels": 16563,
  }}}}

我正在做如下:

try {
     JSONObject mainObject = new JSONObject(text);
     JSONObject productObject = mainObject.getJSONObject("product");
     JSONObject  attributeObject = productObject.getJSONObject(ATTRIBUTES1);
     JSONObject valueObject = attributeObject.getJSONObject(PRODUCT_VALUE);
     JSONObject volumeObject = attributeObject.getJSONObject(PRODUCT_VOLUME);

     String  cake = valueObject.getString(PRODUCT_CAKE);
     String  butter = valueObject.getString(PRODUCT_BUTTER);
     String  gelsd = valueObject.getString(PRODUCT_GELSD);
     String  yeast = valueObject.getString(PRODUCT_YEAST);
     String  yeas = valueObject.getString(PRODUCT_YEAS);

     System.out.println("cake============="+cake);
     System.out.println("butter============="+butter);
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

我解析正确的方法吗?

4 个答案:

答案 0 :(得分:1)

你有这个

   "Product": {   // P is caps but you have p

更改此

  JSONObject productObject = mainObject.getJSONObject("product");

  JSONObject productObject = mainObject.getJSONObject("Product"); 

答案 1 :(得分:1)

你必须通过

检查
JSONObject productObject = mainObject.getJSONObject("product");

但在您的json数据中,它是产品

所以改变

JSONObject productObject = mainObject.getJSONObject("Product");

答案 2 :(得分:1)

错误拼写的数组'产品'而不是'产品'

JSONObject productObject = mainObject.getJSONObject("Product");

还使用gson库来解析Json Data。 见例子

http://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.html

答案 3 :(得分:0)

您更改了json对象创建,使用“Product”而不是“product”

使用

JSONObject productObject = mainObject.getJSONObject("Product");

而不是

JSONObject productObject = mainObject.getJSONObject("product");