我有这样的JsonElement:
{
"76800769": {
"prosjekLat": 45.784661646364,
"prosjekLong": 15.947804310909,
"brojCelija": 11
},
"76800772": {
"prosjekLat": 45.7847808175,
"prosjekLong": 15.9477082775,
"brojCelija": 4
},
"2946694": {
"prosjekLat": 45.78475167,
"prosjekLong": 15.9475975,
"brojCelija": 1
},
"76829440": {
"prosjekLat": 45.784726386,
"prosjekLong": 15.947961766,
"brojCelija": 5
}
}
我也创建了Model:
public class AddMarker {
int cellId;
double longitude;
double latitude;
}
我想阅读JSON文件并将值放到List<AddMarker>
。
我正在尝试这个:
JsonElement data = response.body();
JsonObject obj = data.getAsJsonObject();
JsonArray arr = obj.getAsJsonArray();
但我得到一个错误:“这不是JSON数组。”
答案 0 :(得分:1)
您的JSON不是数组。
Json Array syntax指示为了拥有一个数组,您的对象必须格式化为:
[
{
...
},
{
...
},
...
{
...
}
]
现在你将外方括号([]
)作为花括号({}
)。将其更改为方括号,您的代码应该正确运行。
答案 1 :(得分:0)
您正在尝试从单个对象创建一个数组:JsonArray arr = obj.getAsJsonArray(),其中obj仅用于此示例: “76829440”:{ “prosjekLat”:45.784726386, “prosjekLong”:15.947961766, “brojCelija”:5 }
你需要从响应中获取正文并使用所有这些对象创建一个数组,而不是从单个对象
答案 2 :(得分:0)
您可以使用:
JsonObject json = new JsonObject(data);
String str1 = json.getString("76800769");
JsonObject json2 = new JsonObject(str1);
float str11 = json2.getFloat("prosjekLat");
答案 3 :(得分:0)
使用 org.json liberary,您可以按如下方式阅读该元素:
<div id="record">
</div>
给出了以下输出:
11
45.784661646364
15.947804310909
答案 4 :(得分:0)
我需要将JSON对象转换为数组。在php中只使用array_values($ json)。 我用这个解决了我的问题:
json_encode(array_values($izracunatProsjek), true);