如何从不带键的JSON数组中的数组中读取值?

时间:2018-11-25 19:21:27

标签: java android json

如何从json数组中读取值并将这2个值存储在2个不同的变量中?

[  
   [  
      6.89545,
      79.85217
   ],
   [  
      6.897287,
      79.859544
   ],
   [  
      6.905271,
      79.862609
   ],
   [  
      6.906114,
      79.858998
   ]
]

但是,很明显,数组没有键。那么,如何处理呢?有没有可能解决的办法? 这是我用来从数组中获取值的方法。

@Override
    public void onResponse(String response) {
        md.dismiss();
        if (response != null) {
            try {
                List<LatLng> latLngs = new ArrayList<>();
                JSONArray latLonArray = new JSONArray( response );

                for (int i = 0; i < latLonArray.length(); i++) {
                    // this is the part where I am stuck
                }
            } catch (JSONException e) {
                e.printStackTrace();
                Toast.makeText(mContext, "Server connection error", Toast.LENGTH_SHORT).show();
            }
        } else {
            Toast.makeText(mContext, "Server connection error", Toast.LENGTH_SHORT).show();
        }
    }

1 个答案:

答案 0 :(得分:0)

  

for(int i = 0; i

您可以使用数字索引来访问JSONArray中的值。例如:

 for (int i = 0; i < latLonArray.length(); i++) {

   double latitude = latLonArray.getJSONArray(i).getDouble(0);
   double longitude = latLonArray.getJSONArray(i).getDouble(1);

                }

JSONArray中的每个元素也是JSONArray,并且在JSONArray中我们有两个双精度值(当然,这取决于您的JSON字符串的结构),因此您必须访问内部JSONArray,然后检索其值。上面的代码可能会有所帮助,加以研究并获得启发。祝你好运。