Java使用Json

1.Json简介 JavaScript Object Notation(JavaScript 对象表示法)

Json是纯文本格式,但是后缀是 .json ,最外面一个大括号 { },里面是 名称-值 对,名称和值之间用 : 隔开,值可以是基本数据格式,比如 int、String,也可以是一个数组、一个对象

* 数据在名称/值对中
* 数据由逗号分隔
* 大括号保存对象
* 中括号保存数组
{
"employees": [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName":"Carter" }
]
}
{"cold_clean":0,"diamond":0,"gold":0,"latiao":0,"linshi":0,"liwu":0,"song":0,"white_gold":0}

上面都是Json格式的数据

处理Json数据,首先要把Json数据从 .json 文件中读取出来再处理,因此,其实也可以保存在 .txt 文件中,并不受太大影响

2.Json 的使用

一般使用第三方的 api 或工具,比如阿里的 fastjson
导入 lib 包
从 .json 文件中读取 json 数据,然后调用相应的 api 中的方法就可以了

BufferedReader reader;
try
{
     // 首先读取 Json 文件
     reader = new BufferedReader(new FileReader("./src/count.json"));
     String countInfo = reader.readLine();
     // 调用 api 中的方法将 Json 数据转换成对象
     Count count = (Count) JSON.parseObject(countInfo,Count.class);
     // 修改对象的值
     count.setLinshi(1);
     // 将对象转换为Json格式的数据(因为Json就是普通的文本格式,所以就是转换为一个String)
     String afterCountInfo = JSON.toJSONString(count);
     System.out.println("after:" + afterCountInfo);
     reader.close();
     // 将修改后的 Json 数据重新写到文件中
     BufferedWriter writer = new BufferedWriter(new FileWriter("./src/cn/ihsuzi/test/count.json"));
     writer.write(afterCountInfo);
     writer.flush();
     writer.close();

} catch (Exception e)
{
     e.printStackTrace();
}

注意:Json文件的path的写法要小心,上面所示demo中的Json文件放在 src 目录下,在本地测试的时候可以入上面代码一样可以直接调用,但是如果放在 JavaWeb 项目中,特别是启动服务器后调用就会出问题,要换一种方式,如下:

URL url = MessageHandlerUtil.class.getClassLoader().getResource("count.json");
String  jsonPath = url.getPath();
BufferedReader reader = new BufferedReader(new FileReader(jsonPath));

通用的写法是:

URL url = 类名.class.getClassLoader().getResource("文件名");
String  path= url.getPath();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值