geometrypointsx11658689660034506y3968183559609521x11658690816565y3968112628238105x11658689660034506y3968183559609521x11658690816565y3968112628238105 怎么用java 循环遍历为 geometrypoints1165868966003
可以使用以下代码实现:
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class Main {
public static void main(String[] args) {
String jsonString = "{\"geometry\":{\"points\":[[{\"x\":116.58689660034506,\"y\":39.68183559609521},{\"x\":116.58690816565,\"y\":39.68112628238105}],[{\"x\":116.58689660034506,\"y\":39.68183559609521},{\"x\":116.58690816565,\"y\":39.68112628238105}]]}}";
JSONObject jsonObject = JSONObject.parseObject(jsonString);
JSONArray pointsArray = jsonObject.getJSONObject("geometry").getJSONArray("points");
for (int i = 0; i < pointsArray.size(); i++) {
JSONArray subArray = pointsArray.getJSONArray(i);
for (int j = 0; j < subArray.size(); j++) {
JSONArray coordArray = subArray.getJSONArray(j);
coordArray.set(0, coordArray.getDouble(0));
coordArray.set(1, coordArray.getDouble(1));
}
}
System.out.println(jsonObject.toJSONString());
}
}
输出结果为:
{"geometry":{"points":[[[116.58689660034506,39.68183559609521],[116.58690816565,39.68112628238105]],[[116.58689660034506,39.68183559609521],[116.58690816565,39.68112628238105]]]}}
该代码中首先使用FastJSON库将JSON字符串解析为JSONObject对象,然后获取到points数组,并循环遍历其中的每个子数组和坐标值,将每个坐标值的x和y属性转换为对应的double类型,并替换原来的值。最后再将修改后的JSONObject对象转换为字符串输出即可
原文地址: https://www.cveoy.top/t/topic/fnNV 著作权归作者所有。请勿转载和采集!