json格式文件
[
{
"id": "11",
"pid": 0,
"deep": 0,
"name": "北京",
"pinyin": "bei jing",
"pinyin_prefix": "b",
"ext_id": "110000000000",
"ext_name": "北京市",
"childs": [
{
"id": "1101",
"pid": 11,
"deep": 1,
"name": "北京",
"pinyin": "bei jing",
"pinyin_prefix": "b",
"ext_id": "110100000000",
"ext_name": "北京市",
"childs": [
{
"id": "110101",
"pid": 1101,
"deep": 2,
"name": "东城",
"pinyin": "dong cheng",
"pinyin_prefix": "d",
"ext_id": "110101000000",
"ext_name": "东城区"
},
{
"id": "110102",
"pid": 1101,
"deep": 2,
"name": "西城",
"pinyin": "xi cheng",
"pinyin_prefix": "x",
"ext_id": "110102000000",
"ext_name": "西城区"
},
{
"id": "110105",
"pid": 1101,
"deep": 2,
"name": "朝阳",
"pinyin": "chao yang",
"pinyin_prefix": "c",
"ext_id": "110105000000",
"ext_name": "朝阳区"
}
...
]
...
}
...
]
...
}
...
]
转换代码
public static void main(String[] args) throws FileNotFoundException {
String path = "E:\\Desktop\\area_format_user.json";
jsonToSql(path);
}
private static void jsonToSql(String path) throws FileNotFoundException {
JsonParser jsonParser = new JsonParser();
JsonArray jsonArray = (JsonArray) jsonParser.parse(new FileReader(path));
List<String> sqlList = new ArrayList<>();
getSql(jsonArray, sqlList);
//保存文件中。。。
System.out.println(sqlList.size());
}
private static void getSql(JsonArray jsonArray, List<String> sqlList){
for (JsonElement element : jsonArray) {
StringBuilder sb = new StringBuilder();
sb.append("insert into shop_region (id, parent_id, level, nick_name, ext_name, area_code,pinyin,pinyin_prefix ) values ( ");
JsonObject jsonObject = element.getAsJsonObject();
sb.append(jsonObject.get("id").toString()).append(",");
sb.append(jsonObject.get("pid").toString()).append(",");
sb.append(jsonObject.get("deep").toString()).append(",");
sb.append(jsonObject.get("name").toString()).append(",");
sb.append(jsonObject.get("ext_name").toString()).append(",");
sb.append(jsonObject.get("ext_id").toString()).append(",");
sb.append(jsonObject.get("pinyin").toString()).append(",");
sb.append(jsonObject.get("pinyin_prefix").toString()).append(");");
sqlList.add(sb.toString());
System.out.println(sb.toString());
JsonArray childs = jsonObject.getAsJsonArray("childs");
if (childs != null && childs.size() > 0) {
getSql(childs, sqlList);
}
}
}