json,string和object的轉換
阿新 • • 發佈:2019-02-03
現在主流的平臺的介面資料都已經是json格式的了。簡單介紹集中轉換的方法,都是用第三方jar包。
1.jackson.
private static ObjectMapper objectMapper = new ObjectMapper(); static{ objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd")); objectMapper.setDeserializationConfig(objectMapper.getDeserializationConfig().without( DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES)); } /** * 使用物件進行json反序列化。 * @param json json串 * @param pojoClass 類型別 json的String型別轉換為類 */ public static Object decodeJson(String json, Class pojoClass) throws Exception{ try{ return objectMapper.readValue(json, pojoClass); }catch(Exception e){ throw e; } } /** * 將物件序列化。 * @param o 實體物件 * @return 序列化後json object轉String,可以轉換map等型別 */ public static String encodeJson(Object o) throws Exception{ try{ return objectMapper.writeValueAsString(o); }catch(Exception e){ throw e; } }
2. FastJson
阿里巴巴FastJson也是一個Json工具包,速度最快的包,據說測試超越其他Java Json parser,超越JackJson,支援java Bean、集合、Map、日期、Enum,支援泛型支援自省;能夠直接執行在java環境,支援Android,而且開源的。
API入口類是com.alibaba.fastjson.JSON 常用的操作
public static final Object parse(String text); // 把JSON文字parse為JSONObject或者JSONArray public static final JSONObject parseObject(String text); // 把JSON文字parse成JSONObject public static final T parseObject(String text, Class clazz); // 把JSON文字parse為JavaBean public static final JSONArray parseArray(String text); // 把JSON文字parse成JSONArray public static final List parseArray(String text, Class clazz); //把JSON文字parse成JavaBean集合 public static final String toJSONString(Object object); // 將JavaBean序列化為JSON文字 public static final String toJSONString(Object object, boolean prettyFormat); // 將JavaBean序列化為帶格式的JSON文字 public static final Object toJSON(Object javaObject); 將JavaBean轉換為JSONObject或者JSONArray。
我的jar包:http://pan.baidu.com/s/1dDxfK21 加一個request的解析,解析完直接轉換為java類,
private String getRequestBody(HttpServletRequest request) throws IOException { String postBody = new String(); BufferedReader bReader = request.getReader(); String line = null; while((line = bReader.readLine()) != null){ postBody += line; } return postBody; } pay ucReq = JSON.parseObject(postBody, pay.class);
3.Gson
google的Gson包,我的jar包。
JsonParser json = new JsonParser();
JsonObject obj = (JsonObject) json.parse(content);
String orderId = obj.get("orderId").toString();
String money = obj.get("money").toString();
4.json。
JSONParser jsonParser = new JSONParser(JSONParser.DEFAULT_PERMISSIVE_MODE);
JSONObject obj;
try {
obj = (JSONObject) jsonParser.parse(jsonStr);
} catch (ParseException e) {
throw new QException(QException.CODE_JSON_ERROR, jsonStr);
} catch (Exception e1) {
throw new QException(QException.CODE_JSON_ERROR, jsonStr);
}
String errorCode = (String) obj.get("error_code");