如何在Android中阅读这种JSON格式

时间:2016-08-19 13:53:17

标签: android json

我有一个问题是在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
        },

感谢。

4 个答案:

答案 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)

  1. 首先,您需要创建一个属性为lat,id,nombre...
  2. 的POJO
  3. 读取JSON数组元素并将JSON转换为Class(可以使用jackson或Gson)
  4. 随时随地使用您的物品
  5. 此外这段代码可能会对你有所帮助,但对于某些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