栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java读取并修改保存JSON文件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java读取并修改保存JSON文件

文章目录
  • POM依赖
  • 读取JSON文件
  • 解析JSON
  • 生成新JSON文件

JSON文件存放在项目的resources资源目录下,内容如下:

test.json

{
  "core": 123,
  "channel":"ok",
  "parameter":[
    "aaa","bbb","ccc"
  ],
  "content": [
    {
      "reader":"xiaoming",
      "writer":"lisi"
    }
  ]
}
POM依赖

	com.alibaba
	fastjson
	1.2.47

读取JSON文件
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")

输出结果:

=节点元素=
123
ok
=列表元素=
bbb
lisi

生成新JSON文件
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机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016489.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号