2016-08-19 46 views
-3

我有一个问题来加载这个json在JSONObject中,我尝试了一些组合,但它没有工作,例如我能够加载Openweather JSON格式很容易,但是这个我什么都没对我的日志作为输出如何在Android中读取JSON的这种格式

这是的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

请将您的回复作为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(); 
} 
+0

谢谢,完美的工作 – Blacksword

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(); 
    } 
+0

@Arya R.我的答案对我有帮助吗? – Nikhil

0
  1. ,你需要创建一个属性lat,id,nombre...
  2. 阅读JSON数组元素一个POJO和转换JSON类(可以使用杰克逊或Gson)
  3. 无论你想使用你的对象

此外,这段代码可能会帮助你,但自动转换是更漂亮的一些库。

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(); } 

其他一些有用的链接

编码愉快。