如何将json解析到android中,将用户位置与最近的10个位置进行比较?

如何将json解析到android中,将用户位置与最近的10个位置进行比较?,android,arrays,location,Android,Arrays,Location,Im获取存储位置的服务器响应,它基本上是一个带有字典的主数组: [主阵列: {name=main, 纬度=15.948 长=88.853 }, {name=5街, 纬度=15.294 长=88.743 }, {name=戛纳大道, lat=15.235 长=88.765 }, ] 我需要遍历每个商店,获取lat/long,将其与用户位置进行比较,创建一个新阵列,其中只包含前5个最近的位置 到目前为止,我已经做到了: 试一试{ //获取位置的主数组 JSONArray JSONArray=新的JS

Im获取存储位置的服务器响应,它基本上是一个带有字典的主数组:

[主阵列: {name=main, 纬度=15.948 长=88.853 }, {name=5街, 纬度=15.294 长=88.743 }, {name=戛纳大道, lat=15.235 长=88.765 }, ]

我需要遍历每个商店,获取lat/long,将其与用户位置进行比较,创建一个新阵列,其中只包含前5个最近的位置

到目前为止,我已经做到了:

试一试{ //获取位置的主数组 JSONArray JSONArray=新的JSONArray(Arrays.asList(contentAsString))


任何帮助都将不胜感激。

两个位置之间可以有两种距离,直线距离和路径。您想要哪一种?然后是可能的重复
            //Loop through each dictionary in array

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

                //Get the lat&long for
                JSONObject sys  = jsonArray.getJSONObject("master");
                name = sys.getString("name");
                latitude = sys.getString("lat");
                longitude = sys.getString("long");

                //Create location object

                //Send to Location.distanceTo() method

                //Create new array with distance field added to the original values

            }

            //Sort and get nearest 5 locations

            //Create cards for top 5 locations only


            //better use Mirror API
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
//Get distances
    public float distanceTo (Location dest) {

        //Compare distance passed to user location

        //return distance float
        return 1;
    }