我有这段代码,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);
}
您可以使用此代码来解析 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());
}
}
只需将 JSON 字符串传递给parseDishData
方法即可。
编辑:您的错误:
E/错误:{id=830 的字符 73 处的预期文本值, dish_id=789, dish_size=小, 价格=21, 重量=350, promo_price=, dishes_num_for_promo=0
您收到上述错误是因为 JSON 字符串似乎有问题。"promo_price"这个键没值!"promo_price=,"。应该有一个值,例如:"promo_price=10,"。
可以通过强制转换对象来构造JSONObject
:
JSONObject json = (JSONObject) tempObj;
现在,您可以根据要从中获取的数据类型,使用JSONObject
类中的相应 getter 来访问属性。
例如,您执行以下操作:
int id = json.getInt("id");
以获取对象的 ID。
您将Object
强制转换为JSONObject
,以从此 JSON 中提取值。
JSONObject json = (JSONObject) tempObj;
然后你可以通过简单的方法解析 Json,例如
String promo_price = json.getString("promo_price");