阿里Fastjson基本使用
Fastjson中的经常调用的方法:
**1 public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray
2 public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
3 public static final T parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean
4 public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
5 public static final List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合
6 public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本
7 public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本
8 public static final Object toJSON(Object javaObject); //将JavaBean转换为JSONObject或者JSONArray。**
1.map转json
Map<String, String> map = new HashMap<>();
map.put("one", "第一个");
map.put("two", "第二个");
System.out.println(JSON.toJSON(map));
查看源码得知返回的类型是个JsonObject
2.List装json
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map1 = new HashMap<String, String>();
map1.put("key1", "One");
map1.put("key2", "Two");
Map<String, String> map2 = new HashMap<String, String>();
map2.put("key1", "Three");
map2.put("key2", "Four");
list.add(map1);
list.add(map2);
System.out.println(JSON.toJSON(list));
查看源码得知返回的类型是个JsonArray(先把List中的Map转成JsonObject,然后添加JsonObject到JsonArray中)
3.bean转Json
写个UserBean类
public class User {
private String username;
private int age;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
然后使用JSON.toJson
User user=new User();
user.setUsername("userbean类");
user.setAge(21);
System.out.println(JSON.toJSON(user));
返回的是JsonObject
4.JSON转bean
String jsonstr = "{\"age\":21,\"username\":\"userbean类\"}";
User user=JSON.parseObject(jsonstr,User.class);
System.out.println(user.getUsername()+"---->"+user.getAge());
userbean类---->21
5.json装map以及复杂类型转换
使用 JSON.parseObject(String text, TypeReference type)
Map<String, User> map3 = new HashMap<>();
User user2 = new User("a", 10);
User user3 = new User("b", 11);
User user4 = new User("c", 12);
map3.put("one", user1);
map3.put("two", user2);
map3.put("three", user3);
map3.put("four", user4);
String jsonstr = JSON.toJSONString(map3);
System.out.println("JSON数据为" + jsonstr);
//json转其他类型
Map<String, User> parsemap = JSON.parseObject(jsonstr, new TypeReference<Map<String, User>>() {
});
for (Entry<String, User> stringUserEntry : parsemap.entrySet()) {
System.out.println(stringUserEntry.getKey() + "----" + stringUserEntry.getValue().toString());
}
6.JSON转List
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("key1", "One");
map1.put("key3", "Two");
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("key1", "Three");
map2.put("key2", "Four");
list.add(map1);
list.add(map2);
String jsonstr =JSON.toJSONString(list);
System.out.println("JSON数据为:"+jsonstr);
List<Map<String,Object>> list1=JSON.parseObject(jsonstr, new TypeReference<List<Map<String,Object>>>(){});
for (int i=0;i<list1.size();i++) {
System.out.println(list1.get(i));
}
JSON数据为:[{"key1":"One","key3":"Two"},{"key1":"Three","key2":"Four"}]
{key1=One, key3=Two}
{key1=Three, key2=Four}
7.map转jsonObject
使用 JSONObject.parseObject(String text)
Map<String, Object> map = new HashMap<>();
map.put("one", "第一个");
map.put("two", "第二个");
JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(map));
jsonObject.put("three","第三个");
System.out.println(jsonObject.toJSONString());
{"one":"第一个","two":"第二个","three":"第三个"}
8.list转jsonarray
final List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("key1", "One");
map1.put("key3", "Two");
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("key1", "Three");
map2.put("key2", "Four");
list.add(map1);
list.add(map2);
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(list));
Map<String, Object> map = new HashMap<>();
map.put("key1", "第一个");
map.put("two", "第二个");
JSONObject jsonObject = new JSONObject(map);
jsonArray.add(jsonObject);
for (int i = 0;i < jsonArray.size();i++) {
JSONObject jsonObject1 = jsonArray.getJSONObject(i);
System.out.println(jsonObject1);
}
{"key1":"One","key3":"Two"}
{"key1":"Three","key2":"Four"}
{"key1":"第一个","two":"第二个"}