【问题标题】:JSON-Simple java.lang.String cannot be cast to java.lang.NumberJSON-Simple java.lang.String 不能转换为 java.lang.Number
【发布时间】:2022-01-22 07:30:20
【问题描述】:

我正在尝试从此处看到的 json(作为 Double)获取 LAT/LNG 值:

{
    "placeNames": [
        {
            "name": "Test",
            "lat": "0",
            "lon": "0"
        },
        {
            "name": "Üsküdar Bağlarbaşı Yolu",
            "lat": "1",
            "lon": "2"
        },
        {
            "name": "Çamlıca",
            "lat": "3",
            "lon": "4"
        }
    ]
}

并在此处看到的谷歌地图中放置标记:

JSONParser jsonParser = new JSONParser();

try {
    JSONObject jsonObject = (JSONObject) jsonParser.parse(GetJson(getContext())); //TODO: READ JSON FILE
    JSONArray lang = (JSONArray) jsonObject.get("placeNames");
    for (int i = 0; i < lang.size(); i++) {
        JSONObject explrObject = (JSONObject) lang.get(i);
        String PlaceName = (String) explrObject.get("name");
        MarkerOptions marker3 = new MarkerOptions();
        Double LAT = ((Number) explrObject.get("lat")).doubleValue();
        Double LNG = ((Number) explrObject.get("lon")).doubleValue();
        marker3.position(new LatLng(LAT, LNG)).title(PlaceName);
    }
}

我遇到的问题是 LNG/LAT 值似乎是以字符串形式出现的,即使它们是我的 JSON 文件中的数字,感谢任何帮助。:)

【问题讨论】:

    标签: java json android-studio json-simple


    【解决方案1】:

    也许你可以试试:

    Double LAT = Double.parseDouble(explrObject.getString("lat"));
    

    Double LAT = Double.parseDouble((String) explrObject.get("lat"));
    

    【讨论】:

    • 我使用的是 JSON-Simple,所以它没有 getString 之类的功能
    • 对不起,我的错。如果您尝试: Double LAT = Double.parseDouble((String) explrObject.get("lat")); ?
    【解决方案2】:

    以下是具有 double/ float 值的有效 JSON 语法,可用于将 json 构造为,

    {
        "placeNames":[
            {
                "name":"Test",
                "lat":29.470237,
                "lon":107.722125
            }
        ]
    }
    

    此外,如果有任何疑问,您可以参考website 在线验证您的 JSON 语法。而且,您上面的 JSON 解析器逻辑将适用于这个 JSON 数据。

    【讨论】:

      猜你喜欢
      • 2014-09-21
      • 2018-02-10
      • 2015-05-18
      • 2011-10-27
      • 2019-10-19
      • 2018-01-23
      • 2011-05-09
      • 2014-06-24
      • 1970-01-01
      相关资源
      最近更新 更多