java代码
package org.example.demo.demos.web;import org.json.JSONArray;
import org.json.JSONObject;import java.io.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.nio.file.Files;
import java.nio.file.Paths;public class JsonToCsvExporter {public static String readJsonFromFile(String filePath) throws IOException {return new String(Files.readAllBytes(Paths.get(filePath)));}public static void main(String[] args) {try {String jsonString = readJsonFromFile("D:\\wxfile\\WeChat Files\\wxid_apkc5xaef63v22\\FileStorage\\File\\2024-11\\320506.json");JSONObject jsonObject = new JSONObject(jsonString);JSONArray features = jsonObject.getJSONArray("features");BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:\\sql\\jiayou6.csv"), "UTF-8"));writer.write("province,city,country,name,code,centroid_lat,centroid_lon");writer.newLine();for (int i = 0; i < features.length(); i++) {JSONObject feature = features.getJSONObject(i);JSONObject properties = feature.getJSONObject("properties");JSONArray centroid = properties.getJSONArray("centroid");String province = properties.getString("province");String city = properties.getString("city");String country = properties.getString("country");String name = properties.getString("name");String code = properties.getString("code");Double centroidLat = centroid.getDouble(1);Double centroidLon = centroid.getDouble(0);JSONArray coordinates = feature.getJSONObject("geometry").getJSONArray("coordinates");writer.write(String.format("%s,%s,%s,%s,%s,\"%s\",\"%s\",\"%s\"",province, city, country, name, code, centroidLat+"\t", centroidLon, coordinates.toString()));writer.newLine();}writer.close();} catch (IOException e) {e.printStackTrace();}}
}
json格式
{"type": "FeatureCollection","features": [{"type": "Feature","geometry": {"type": "Polygon","coordinates": [[[120.60007823970665, 31.31712313141799],[120.60079346065866, 31.319310309073238],[120.60063063950828, 31.320359162324976],[120.60007823970665, 31.31712313141799]]]},"properties": {"geom": "SRID=4326;M6028 31.314280)))","province": "江苏省","city": "苏州市","country": "姑苏区","name": "虎丘街道","code": "320508022","centroid": [120.58022070333683, 31.333360742651255]}},{"type": "Feature","geometry": {"type": "Polygon","coordinates": [[[120.64872047263296, 31.28158308108988],[120.64836632087228, 31.280224143708896],[120.64872047263296, 31.28158308108988]]]},"properties": {"geom": "SRID=4326;MULT1.27843)))","province": "江苏省","city": "苏州市","country": "姑苏区","name": "葑门街道","code": "320508","centroid": [120.64269225845081, 31.29180955836013]}}]
}