我有一个像这样的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 => parseMaterial:材料无值


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

最佳答案

您缺少一步:更改

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




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


getJSONArray不会“搜索”整个对象(如果您在对象中有多个“材质”,则可能会产生不可预测的结果),而不会“搜索”整个对象。

09-19 21:19