- POM依赖
- 读取JSON文件
- 解析JSON
- 生成新JSON文件
JSON文件存放在项目的resources资源目录下,内容如下:
test.json
{
"core": 123,
"channel":"ok",
"parameter":[
"aaa","bbb","ccc"
],
"content": [
{
"reader":"xiaoming",
"writer":"lisi"
}
]
}
POM依赖
读取JSON文件com.alibaba fastjson 1.2.47
private String readJsonFile() {
String jsonStr = "";
try {
InputStream in = getClass().getClassLoader().getResourceAsStream("test.json");
Reader reader = new InputStreamReader(in,"utf-8");
int ch = 0;
StringBuffer sb = new StringBuffer();
while ((ch = reader.read()) != -1) {
sb.append((char) ch);
}
reader.close();
jsonStr = sb.toString();
return jsonStr;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
解析JSON
JSONObject jobj = JSON.parseObject(readJsonFile());
System.out.println("=======节点元素=======");
System.out.println(jobj.get("core"));
System.out.println(jobj.get("channel"));
System.out.println("=======列表元素=======");
System.out.println(jobj.getJSONArray("parameter").get(1));
JSONObject contentObj = (JSONObject) jobj.getJSONArray("content").get(0);
System.out.println(contentObj.get("writer"));
//修改元素方法与操作map类似,通过put(key,value)完成
jobj.put("core","333")
生成新JSON文件输出结果:
=节点元素=
123
ok
=列表元素=
bbb
lisi
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
private void writeJsonFile(JSONObject jobj){
String content = JSON.toJSONString(jobj, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteDateUseDateFormat);
try {
File file = new File(System.getProperty("user.dir")+ File.separator+ "New.json");
if (file.exists()) {
file.delete();
}
file.createNewFile();
// 写入文件
Writer write = new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8);
write.write(content);
write.flush();
write.close();
} catch (Exception e) {
e.printStackTrace();
}
}
暑期编程PK赛
得CSDN机械键盘等精美礼品!


