java 解析json数据流的几种方式
(速度最快,使用最多)
{ "param": "aaa" }
方式一 jdk 自带jsonObject
import net.sf.json.JSONArray; import net.sf.json.JSONObject; JSONObject rootObject = new JSONObject(json); JSONObject jsonObject = JSONObject.fromObject(json); JSONObject paramzObject = rootObject.getJSONObject("param");
方式二 Gson
import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; // 引入 Map<String, Object> Result = new Gson().fromJson(result, new TypeToken<HashMap<String, Object>>() {}.getType()); Map<String, Object> data = (Map<String, Object>) Result.get("param");
方式三 fastjson (速度最快)
jsonObject类其实在很多jar包中都有,注意import导入的对象
import com.alibaba.fastjson.JSONObject;
JSONObject jsonObject = JSON.parseObject(requestJson); String param= jsonObject.getString("param");
把json数据转换为指定vo对象,request为请求串,Feedbackquest为指定转换的实体类(vo),支持多层级关系(也就是实体类中还有其他的实体类),有的参数会解析并保存到实体对象中,多余的参数则不会保存
FeedbackRequest feedbackRequest = JSONObject.parseObject(request, FeedbackRequest.class);
方式四 jackSon
解析JSON,SpringMVC内置的解析器
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper;