![](/img/trans.png)
[英]JsonSyntaxException: java.lang.NumberFormatException: empty String
[英]Gson JsonSyntaxException: java.lang.NumberFormatException
將帶有Gson的Json解析為對象時出現錯誤。 我正在嘗試將緯度經度存儲在double變量中,但是在解析時出現錯誤。 我嘗試將類變量和gson更改為字符串,但仍然遇到相同的錯誤。 github上的json。
我得到的錯誤是:
com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Expected an int but was 32.93644801 at line 7 column 22 path $.bars[0].lat
json數據是:
{
"bars":[
{
"name": "Antares Pichincha",
"place_id": "ChIJOR29Pk-rt5UR0hsdFVQWpD8",
"logo_src": "antares",
"lat": -32.936448000001,
"lng": -60.6587110
}
]
}
接收數據的類是
public class BarList {
//@SerializedName("bars")
List<Bar> bars;
public List<Bar> getBars(){
return bars;
}
}
public class Bar {
private String name;
private String place_id;
private String logo_src;
private double lat;
private double lng;
public Bar(String name, String place_id, String logo_src, double lat, double lng) {
this.name = name;
this.place_id = place_id;
this.logo_src = logo_src;
this.lat = lat;
this.lng = lng;
}
這就是我所說的
GsonRequest<BarList> request = new GsonRequest<BarList>(
JSON_URL,
BarList.class,
null,
new Response.Listener<BarList>() {
@Override
public void onResponse(BarList response) {
barList = response;
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(MapsActivity.this);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, "Error Respuesta en JSON: " + error.getMessage());
}
}
);
有人知道我該如何解決?
不確定這是否是您的問題,但是bar數組僅包含一個元素,但第9行是逗號,后面應跟另一個元素。
我請一位開發人員朋友看一下代碼,他在代碼上找不到任何問題或錯誤,因此他告訴我刪除設備上已安裝的應用程序並重新生成項目,然后解決了該問題。
謝謝大家的回答。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.