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();