日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java中json转对象_Java开发中json使用,各对象与json相互转换

發布時間:2023/12/10 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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相互转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。