"没有#34; getJSONArray的异常

时间:2015-07-09 08:28:27

标签: java json parsing

我有一个像这样的JSON对象:

{
  "Successful": true,
  "Value": {
    "Materials":[{
      "MaterialID": 37628, 
      "MaterialID": 0, 
      "MaterialNo": 26868, 
      "Type": 0, 
      "MaterialName": Copper
    }],
    "Prices": []
  }
}

我试图获得这样的材料数组:

    public ArrayList<Material> parseMaterial (JSONObject object)
    {
     try
       {
         JSONArray materialArray = object.getJSONArray("Materials");
       }
      catch (JSONException e)
      {
       Log.d("JSONParser=>parseMaterial", e.getMessage());
      }
    }

我得到了这个例外:

  

JSONParser =&gt; parseMaterial:材料没有值

你能告诉我代码有什么问题吗?感谢。

1 个答案:

答案 0 :(得分:1)

你错过了一步:改变

JSONArray materialArray = object.getJSONArray("Materials");

JSONObject value = object.getJSONObject("Value");
JSONArray materialArray = value.getJSONArray("Materials");

getJSONArray没有“搜索”整个对象(如果对象中有多个材质,这可能会产生不可预测的结果),只有第一级。