一、json模型
1.通过json结构来映射数据,可以很清晰的看出数据之间的逻辑关系!我们在爬取数据的是时候只需要将数据和json字段做映射,通过json的key将value替换换成爬回来的数据,这样数据不会凌乱。
{
"base_header":{
"telphone":"",
"email":"",
"website":"",
"address":"",
"simple_context":""
},
"base_info":{
"gs_register":{
"fddbr":"",
"jyzt":"",
"zczb":"",
"sjzb":"",
"cym":"",
"sshy":"",
"tyshxydm":"",
"nsrsnh":"",
"gszch":"",
"zzjgdm":"",
"djjg":"",
"clrq":"",
"qylx":"",
"yyqx":"",
"shsypq":"",
"hzrq":"",
"zcdz":"",
"jyfw":""
},
"gs_stock":{
"gdfqr":"",
"cgbl":"",
"rjcze":"",
"sjcze":""
},
"jyzk":{}
}
}
二、Demo
1.这里用的 fastjson 和gjson中的方法有所不同
package com.microrule.test;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import jdk.nashorn.api.scripting.ScriptUtils;
import org.apache.commons.io.FileUtils;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class main {
private static ScriptUtils parser;
public static void main(String[] args) throws IOException {
//拿到配置文件
String path="D:\\rb-browser-script\\rb-script-api\\src\\main\\resources\\modeltable\\companyMessage.json";
File file =new File(path);
//转化为中文字符
String content= FileUtils.readFileToString(file,"utf-8");
//建立一个json对象
JSONObject jsonObject = new JSONObject();
// Str 转 json
JSONObject json = JSONObject.parseObject(content);
// String base_header= jsonObject.getString("base_header");
// 拿到第一层的键
JSONObject rjson = json.getJSONObject("base_header");
// 直接put替换原键值对
rjson.put("telphone", "123456");
// rjson.put("fddbr","hello");
System.out.println(rjson.toJSONString());
}
}