Fastjson与Jackson

FastJson常用操作

一、java 创建json对象

获取到post请求,利用JSON API获取到相应的参数,解析成程序需要的对象。

String msgPara ="{\"empNames\":[{\"empName\":\"lihz\"},{\"empName\":\"changhf\"}],\"message\":\"aaa\"}";
JSONObject jsonObject = (JSONObject) JSONObject.parse(msgPara);
JSONArray groups = jsonObject.getJSONArray("empNames");//方法一
JSONArray groups = JSONPath.eval(jsonObject, "$.empNames");//方法二,eval方法传入的是json对象,不是字符串
String msgPara2 ="[{\"empName\":\"lihz\"},{\"empName\":\"changhf\"}]";
JSONArray jsonArray = JSON.parseArray(msgPara2);

 

JSON/JSONObject/JSONArray

public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray 
1、public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject    
2、public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray 
3、public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 
public static final  T parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean 
public static final  List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合 
// 将JavaBean序列化为带格式的JSON文本
public static final String toJSONString(Object object, boolean prettyFormat);
public static final Object toJSON(Object javaObject); //将JavaBean转换为JSONObject或者JSONArray。
UserInfo userInfo = JSON.parseObject(data, UserInfo.class);
List<UserInfo> dbconfigList = JSON.parseArray(configInfo, UserInfo.class);

JsonObject和JsonArray都继承自JSON

JSONObject getJSONObject(String key);

JSONPath 

// 常用api介绍
public class JSONPath {          
     //  求值,静态方法
     public static Object eval(Object rootObject, String path);
     // 计算Size,Map非空元素个数,对象非空元素个数,Collection的Size,数组的长度。其他无法求值返回-1
     public static int size(Object rootObject, String path);
     // 是否包含,path中是否存在对象
     public static boolean contains(Object rootObject, String path) { }
     // 是否包含,path中是否存在指定值,如果是集合或者数组,在集合中查找value是否存在
     public static boolean containsValue(Object rootObject, String path, Object value) { }
     // 从json串中取值
     public static Object read(String json, String path){}
}
{"store":{"bicycle":{"color":"red","price":19.95},"book":[{"author":"Nigel Rees","price":8.95,"category":"reference","title":"Sayings of the Century"},{"author":"Evelyn Waugh","price":12.99,"isbn":"0-553-21311-3","category":"fiction","title":"Sword of Honour"}]}}
JSONPath.contains(entity, "$.value");//entity是否包含value属性
JSONPath.eval(entity, "$.value")//从entity取value值
JSONPath.containsValue(entity, "$.id", 123)//entity的id是否为123
JSONPath.size(entity, "$")//有几个属性
List<String> names = (List<String>)JSONPath.eval(entities, "$.name"); // 返回enties的所有名称
//eval使用json对象匹配,read直接使用json字符串匹配
JSONPath.read(String json, String path)//使用JSONPrase 解析JSON字符串或者Object对象
String title = (String) JSONPath.read(jsonStr, "$.store.book[0].title");

Jackson记录

JackSon功能强大,序列化和反序列化性能都非常优秀,使用ObjectMapper类将POJO对象序列化为json字符串,也能将json字符串反序列化为POJO对象。
最常用的方式是Databind(对象绑定)

User user = mapper.readValue(json,User.class);//反序列化
String str = mapper.writeValueAsString(user);//序列化 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值