java中json转对象_Java开发中json使用,各对象与json相互转换
Json:一種網絡通信使用的數據格式,因為便于解析,比較流行,對象可以轉為json,同樣json也可以轉對象。
下面介紹下Json工具的簡單使用(fastjson && jackson)。
FastJson
阿里的json數據解析工具包,國內比較流行,用的較多。
對象轉json字符串
JSON.toJSONString(user);
對象轉json對象
(JSONObject)JSON.toJSON(user);
json字符串轉對象
JSON.parseObject(jsonString, User.class);
json對象轉對象
User javaObject = JSON.toJavaObject(jsonObject, User.class);
list 轉 json
String jsonString =JSON.toJSONString(users);
json 轉 list
List parseArray = JSON.parseArray(jsonString, User.class);
完整示例代碼(需要引入fastjson的jar包):
package test;//JsonTest.java 文件所在位置:test包
importjava.util.ArrayList;importjava.util.List;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;public classJsonTest {//User 類
static classUser{privateInteger age;privateString name;publicInteger getAge() {returnage;
}public voidsetAge(Integer age) {this.age =age;
}publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}
@OverridepublicString toString() {return "User [age=" + age + ", name=" + name + "]";
}
}public static voidmain(String[] args) {//new 一個User對象
User user = newUser();
user.setAge(1);
user.setName("xiaojun");//對象轉json字符串
String jsonString =JSON.toJSONString(user);
System.out.println("對象轉json字符串:\t" +jsonString);//對象轉json對象
user.setAge(2);
JSONObject jsonObject=(JSONObject)JSON.toJSON(user);
System.out.println("對象轉json:\t" +jsonObject);//json字符串轉對象
User parseObject = JSON.parseObject(jsonString, User.class);
System.out.println("json字符串轉對象:\t" +parseObject);//json對象轉對象
User javaObject = JSON.toJavaObject(jsonObject, User.class);
System.out.println("json對象轉對象:\t" +javaObject);
User user2= newUser();
user2.setAge(9);
user2.setName("xiaochen");
ArrayList users = new ArrayList<>();
users.add(user2);
users.add(user);
System.out.println("list 轉json============\t");
System.out.println("準備轉json的list:\t" +users);//list 轉json
String jsonString2 =JSON.toJSONString(users);
System.out.println("list轉json:\t" +jsonString2);//json 轉list
List parseArray = JSON.parseArray(jsonString2, User.class);
System.out.println("json轉list:\t" +parseArray);
}
}
執行main方法Console控制臺打印結果如下:
Jackson
與FastJson一樣,Jackson 應該比fastjson 出現更早,api用法有些不一樣,但是使用效果差不多
使用jackson編寫的json工具類,JsonUtil:
importjava.util.List;importcom.fasterxml.jackson.core.JsonProcessingException;importcom.fasterxml.jackson.databind.JavaType;importcom.fasterxml.jackson.databind.ObjectMapper;/****/
public classJsonUtil {//定義jackson對象
private static final ObjectMapper MAPPER = newObjectMapper();/*** 將對象轉換成json字符串。
*
Title: pojoToJson
*
Description:
*@paramdata
*@return
*/
public staticString objectToJson(Object data) {try{
String string=MAPPER.writeValueAsString(data);returnstring;
}catch(JsonProcessingException e) {
e.printStackTrace();
}return null;
}/*** 將json結果集轉化為對象
*
*@paramjsonData json數據
*@paramclazz 對象中的object類型
*@return
*/
public static T jsonToPojo(String jsonData, ClassbeanType) {try{
T t=MAPPER.readValue(jsonData, beanType);returnt;
}catch(Exception e) {
e.printStackTrace();
}return null;
}/*** 將json數據轉換成pojo對象list
*
Title: jsonToList
*
Description:
*@paramjsonData
*@parambeanType
*@return
*/
public static List jsonToList(String jsonData, ClassbeanType) {
JavaType javaType= MAPPER.getTypeFactory().constructParametricType(List.class, beanType);try{
List list =MAPPER.readValue(jsonData, javaType);returnlist;
}catch(Exception e) {
e.printStackTrace();
}return null;
}
}
本文不定期更新
總結
以上是生活随笔為你收集整理的java中json转对象_Java开发中json使用,各对象与json相互转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu下安装SSH服务
- 下一篇: 最新Java面试题,常见面试题及答案汇总