有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在Android中从JSON获取价值

我有以下回应:

 {"error":100,"result":"{\"distance\":2.4,\"duration\":5,\"price\":0}"}

从这个响应中,我想得到一个“距离”值,例如。怎么做

我试着这样做:

 String distance = String.valueOf(finalResponseDataJOSNObject.getDouble("distance"));

但字符串值为空。有什么想法吗

更新:

最后,我们发现这是后端问题,并修复了它。不需要像JSONObject到字符串的对话、特殊字符删除等附加操作

简单地说:

String distance =  
String.valueOf(finalResponseDataJOSNObject.getJSONObject("result").getDouble("di‌​stance"));

共 (4) 个答案

  1. # 1 楼答案

    仅结果下的距离为JSONObject。所以你必须getJSONObject("result").getDouble("distance")

  2. # 2 楼答案

    谢谢你们所有的回应

    最后,我们发现这是后端问题,并修复了它。不需要像JSONObject到字符串的对话、特殊字符删除等附加操作

    简单地说:

    String distance =  
    String.valueOf(finalResponseDataJOSNObject.getJSONObject("result").getDouble("di‌​stance"));
    
  3. # 3 楼答案

    试试这个

    String json = "{\"error\":100,\"result\":{\"distance\":2.4,\"duration\":5,\"price\":0}}";
    try {
        JSONObject jsonObject = new JSONObject(json);
        double distance = jsonObject.getJSONObject("result").getDouble(
                "distance");
        Log.i("DISTANCE", String.valueOf(distance));
    } catch (JSONException e) {
        e.printStackTrace();
    }
    
  4. # 4 楼答案

    您可以通过以下方式执行此操作: 从json字符串中删除特殊字符,并转换回json对象,并相应地进行处理:

    String json = "{\"error\":100,\"result\":{\"distance\":2.4,\"duration\":5,\"price\":0}}";
    try{
    
        JSONObject jsonObject = new JSONObject(json.replaceAll("\"", ""));
    
        JSONObject jsonObject2=jsonObject.getJSONObject("result");
    
        String distance=jsonObject2.getString("distance");
    
        double convertedDistance=Double.valueOf(distance);
    
        Log.i("DistanceInformation", "My Distance from json is="+distance);
    
    
    
    }catch(JSONException e)
    {
        e.printStackTrace();
    }