2016-08-19 43 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(); } 

其他一些有用的鏈接

編碼愉快。