我有这段代码,System.out.println(tempObj);
打印了这个json(I/System.out: {id=830, dish_id=789, dish_size=Small, price=21, weight=350, promo_price=, dishes_num_for_promo=0}
),能帮我如何在JAVA Android中访问这些json值吗?
for(int i=0; i<disSizes.length; i++ ){
Object tempObj = disSizes[i];
System.out.println(disSizes);
System.out.println(tempObj);
}
答案 0 :(得分:1)
您可以使用以下代码来解析JSONObject:
private void parseDishData(JSONObject jsonObj){
try{
int dishId = jsonObj.optInt("dish_id", -1);
String disSizes = jsonObj.optString("dish_size", "NA");
String price = jsonObj.optString("price", "NA");
Log.e("MyDishData", "dishId = " + dishId + " disSizes = " + disSizes)
}
catch(Exception ex){
Log.e("ERROR", ex.getMessage());
}
}
或者,如果您有String
,则可以使用以下代码来解析JSON字符串:
private void parseDishData(String json){
try{
JSONObject jsonObj = new JSONObject(json);
int dishId = jsonObj.optInt("dish_id", -1);
String disSizes = jsonObj.optString("dish_size", "NA");
String price = jsonObj.optString("price", "false");
Log.e("MyDishData", "dishId = " + dishId + " disSizes = " + disSizes)
}
catch(Exception ex){
Log.e("ERROR", ex.getMessage());
}
}
只需将parseDishData
方法传递给JSON字符串即可。
编辑:
您的错误:
E / ERROR:{id = 830,字符73处的预期文字值, dish_id = 789,dish_size = Small,price = 21,weight = 350,promo_price =, dishs_num_for_promo = 0
您收到上述错误,因为JSON字符串似乎有问题。关键字“ promo_price”没有价值! “ promo_price =”。例如,应该有一个值:“ promo_price = 10”。
答案 1 :(得分:0)
您可以通过投射对象来构造JSONObject
:
JSONObject json = (JSONObject) tempObj;
现在,您可以根据要从中获取数据的类型,使用JSONObject
类中的适当的吸气剂来访问属性。
例如,您这样做:
int id = json.getInt("id");
获取对象的ID。
答案 2 :(得分:0)
您将把Object
强制转换为JSONObject
,以从此Json中提取值。
JSONObject json = (JSONObject) tempObj;
然后您可以通过简单的方法解析Json
String promo_price = json.getString("promo_price");