如何在 JAVA 中访问 java.lang.Object json 值?



我有这段代码,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");

相关内容

最新更新