Json简介及fastJson使用
1、Json是用来干什么的?
Json(Javascript Object Notation)即Javascript对象的表示法。程序运行过程会不断进行数据交换,Json相当于一种数据格式,可以在不同语言之间传输,并且其占用空间小,提高网络传输效率。而且这种数据格式非常方便,可以表示各种传输的数据类型。对象、数组、基本数据类型。这种数据格式解析非常简单,因此得到广泛使用。其主要特点有:跨语言、易解析、封装的数据包小。
2、Json长什么样?
Json数据格式是以键值的方式表示。
其语法规则为:
1、数据在名称/值对中
2、数据由逗号分隔
3、花括号保存对象
4、方括号保存数组
利用Json表示对象和数组:
{"name":"xiaohua","age":25,"marry":true}
{"persons":[
{"name":"xiaoming","age":20,"marry":false},
{"name":"xiaohong","age":22,"marry":false},
{"name":"xiaoli","age":25,"marry":true}
]}
3、fastJson使用方法
Java Json常用类库工具:fastjson、gjson、jackjson。这三个都是比较常用的json类库,下面以fastJson为例说明使用方法:
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class JsonUtils {
// 对象转换为Json
public static String objectToJson(Book book) {
return JSON.toJSONString(book);
}
// Json转换为对象
public static Book jsonToObject(String json) {
return JSON.parseObject(json, Book.class);
}
// List转Json
public static String listToJson(List<Book> list) {
return JSON.toJSONString(list);
}
// Json转List
public static List<Book> jsonToList(String json) {
return JSON.parseArray(json, Book.class);
}
// Map转Json
public static String mapToJson(Map<String, Object> map) {
return JSON.toJSONString(map);
}
// Json转Map
public static Map<String, Object> jsonToMap(String json) {
return JSON.parseObject(json, Map.class);
}
// Json数据操作
public static String getProperty(String json, String id) {
JSONObject jsonObj = JSON.parseObject(json);
return jsonObj.getString(id);
}
public static String deleteProperty(String json, String id) {
JSONObject jsonObj = JSON.parseObject(json);
Set set = jsonObj.keySet();
set.remove(id);
return jsonObj.toJSONString();
}
public static String addProperty(String json, String key, String value) {
JSONObject jsonObj = JSON.parseObject(json);
jsonObj.put(key, value);
return jsonObj.toJSONString();
}
public static void main(String[] args) {
List<Book> list = new ArrayList<>();
Book book = new Book();
book.setId(UUID.randomUUID().toString());
book.setBookName("追风筝的人");
book.setPage(1);
book.setSale(false);
Book book1 = new Book();
book1.setId(UUID.randomUUID().toString());
book1.setBookName("追风筝的人");
book1.setPage(2);
book1.setSale(false);
list.add(book);
list.add(book1);
System.out.println(listToJson(list));
JSONArray jsonArray = JSON.parseArray(listToJson(list));
Book book2 = new Book();
book2.setId(UUID.randomUUID().toString());
book2.setBookName("追风筝的人");
book2.setPage(3);
book2.setSale(false);
jsonArray.add(book2);
System.out.println(jsonArray.toJSONString());
List<Book> list1 = jsonToList(listToJson(list));
System.out.println(list1.get(0).getBookName());
String json = "{\"0\":\"jack\",\"1\":\"tom\"}";
Map<String, Object> map = jsonToMap(json);
for (String key : map.keySet()) {
System.out.println(key+":"+map.get(key));
}
System.out.println(mapToJson(map));
System.out.println(getProperty(json, "1"));
System.out.println(deleteProperty(json, "1"));
System.out.println(addProperty(json, "2", "jerry"));
}
}