我必须将下面嵌套的Json数组的数据解析到我的应用程序中。我很困惑如何从中获取价值。
{ "prodCat_list": [ { "prods": [ { "cat_id": "9", "position": "1", "sku": "wwww345" }, { "cat_id": "9", "position": "2", "sku": "coof23" }, { "cat_id": "9", "position": "3", "sku": "dde45" }, { "cat_id": "9", "position": "4", "sku": "5555" } ] }, { "prods": [ { "cat_id": "9", "position": "1", "sku": "wwww345" }, { "cat_id": "9", "position": "2", "sku": "coof23" }, { "cat_id": "9", "position": "3", "sku": "dde45" }, { "cat_id": "9", "position": "4", "sku": "5555" } ] }, ] }
任何人都可以指导我如何从中获取内部价值。
我已经试过了
JSONParser parser = new JSONParser(); JSONObject items = parser.getJSONFromUrl(productInfoUrl); try { JSONArray itemsDetails = items.getJSONArray("prodCat_list"); if(itemsDetails.length()>0){ for (int i = 0; i < itemsDetails.length(); i++) { JSONArray productWithCategories = itemsDetails.getJSONArray(i); JSONObject object = productWithCategories.getJSONObject(i); Product productInfo = new Product( object.getString("sku"), object.getInt("cat_id"), object.getInt("position")); ProductDbHandler productDbHandler = new ProductDbHandler(context); productDbHandler.addProducts(productInfo); } } else System.out.println("No product to add"); } catch (JSONException e) { e.printStackTrace(); } }
这是我认为您的JSON解析器应为的样子(可能存在一些拼写错误,我没有在编辑器上测试此代码:)):
JSONObject mainObj = new JSONOBject(myString); if(mainObj != null){ JSONArray list = mainObj.getJSONArray("prodCat_list"); if(list != null){ for(int i = 0; i < list.length();i++){ JSONObject elem = list.getJSONObject(i); if(elem != null){ JSONArray prods = elem.getJSONArray("prods"); if(prods != null){ for(int j = 0; j < prods.length();j++){ JSONObject innerElem = prods.getJSONObject(j); if(innerElem != null){ int cat_id = innerELem.getInt("cat_id"); int pos = innerElem.getInt("position"); String sku = innerElem.getString("sku"); } } } } } } }