我有一个问题是在JSONObject中加载这个json,我尝试了一些组合,但它没有用,例如我能够轻松加载Openweather JSON格式但是这个我在我的日志上没有任何输出< / p>
这是Json的格式:
{
"marcadores": [
{
"lat": 38.632682,
"id": 1,
"nombre": "Les Urques",
"mar": "appvalenciaplayas/static/images/mar/moderado.svg",
"viento": "appvalenciaplayas/static/images/viento/viento_S2.svg",
"simbolo": "appvalenciaplayas/static/images/cielo_dia/sol.svg",
"imagenTemp": "appvalenciaplayas/static/images/pastillas_temp/temp_25_a_31.svg",
"temperatura": 29,
"lon": 0.032945
},
{
"lat": 40.078478,
"id": 2,
"nombre": "Cala d'Orpesa la Vella",
"mar": "appvalenciaplayas/static/images/mar/debil.svg",
"viento": "appvalenciaplayas/static/images/viento/viento_SE2.svg",
"simbolo": "appvalenciaplayas/static/images/cielo_dia/nube_alta_sol.svg",
"imagenTemp": "appvalenciaplayas/static/images/pastillas_temp/temp_25_a_31.svg",
"temperatura": 31,
"lon": 0.134357
},
{
"lat": 40.008969,
"id": 3,
"nombre": "El Serradal",
"mar": "appvalenciaplayas/static/images/mar/debil.svg",
"viento": "appvalenciaplayas/static/images/viento/viento_SE2.svg",
"simbolo": "appvalenciaplayas/static/images/cielo_dia/nube_alta_sol.svg",
"imagenTemp": "appvalenciaplayas/static/images/pastillas_temp/temp_25_a_31.svg",
"temperatura": 31,
"lon": 0.034107
},
感谢。
答案 0 :(得分:0)
请将您的响应作为字符串放在JSONObject中 我告诉你如何得到像这样的所有字段值 请阅读我的代码并根据您的需要应用我的代码。
try{
JSONObject json=new JSONObject(yourResponce);
JSONArray jarray=json.getJSONArray("marcadores");
for(int i=0;i<jarray.length;i++)
{
JSONObject jobj=jarray.getJSONObject(i);
String lat=jobj.getString("lat").toString();
String id=jobj.getString("id").toString();
String nombre=jobj.getString("nombre").toString();
String mar=jobj.getString("mar").toString();
String viento=jobj.getString("viento").toString();
String simbolo=jobj.getString("simbolo").toString();
String imagenTemp=jobj.getString("imagenTemp").toString();
String temperatura=jobj.getString("temperatura").toString();
String lon=jobj.getString("lon").toString();
}
}catch(Exception e)
{
e.printStackTrace();
}
答案 1 :(得分:0)
按如下方式解析JSON
String str = "your_json_here";
try {
JSONObject jsonObject = new JSONObject(str);
JSONArray jsonArray = jsonObject.getJSONArray("marcadores");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject elementJsonObject = jsonArray.getJSONObject(i);
String id = elementJsonObject.getString("id");
// all fields to be accessed as above
}
} catch (JSONException e) {
e.printStackTrace();
}
答案 2 :(得分:0)
lat,id,nombre...
此外这段代码可能会对你有所帮助,但对于某些lib来说,自动转换更为漂亮。
try{ JSONObject json=new JSONObject(yourResponce); JSONArray jarray=json.getJSONArray("marcadores"); for(int i=0;i<jarray.length;i++) { JSONObject jobj=jarray.getJSONObject(i); String lat=jobj.getString("lat").toString(); String id=jobj.getString("id").toString(); String nombre=jobj.getString("nombre").toString(); String mar=jobj.getString("mar").toString(); String viento=jobj.getString("viento").toString(); String simbolo=jobj.getString("simbolo").toString(); String imagenTemp=jobj.getString("imagenTemp").toString(); String temperatura=jobj.getString("temperatura").toString(); String lon=jobj.getString("lon").toString(); }}catch(Exception e) { e.printStackTrace(); }
其他一些有用的链接
快乐的编码。
答案 3 :(得分:0)
你可以使用Gson框架。您可以使用相同的Json响应属性/结构创建模型类。这样您就不需要使用getString()和getObject()。 示例:https://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.html