使用 fastjson 在java中進行 json字串和物件的互轉
前提:我們在這裡只使用fastjson的轉json的jar依賴包
<!-- 轉json字串 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
1.物件POJO和JSON互轉
public class JsonUtil {
/**
* JSON 轉 POJO
*/
public static <T> T getObject(String pojo, Class<T> tclass) {
try {
return JSONObject.parseObject(pojo, tclass);
} catch (Exception e) {
log.error(tclass + "轉 JSON 失敗");
}
return null;
}
/**
* POJO 轉 JSON
*/
public static <T> String getJson(T tResponse){
String pojo = JSONObject.toJSONString(tResponse);
return pojo;
}
}
2. List集合和JSON互轉工具類
public class JsonListUtil {
/**
* List<T> 轉 json 儲存到資料庫
*/
public static <T> String listToJson(List<T> ts) {
String jsons = JSON.toJSONString(ts);
return jsons;
}
/**
* json 轉 List<T>
*/
public static <T> List<T> jsonToList(String jsonString, Class<T> clazz) {
@SuppressWarnings("unchecked")
List<T> ts = (List<T>) JSONArray.parseArray(jsonString, clazz);
return ts;
}
}
3.JSON字串自動 轉換
- /**
- * JSON字串自動轉換
- * Created by zkn on 2016/8/22.
- */
- public class JsonToMapTest01 {
- public static void main(String[] args){
- String str = "{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}";
- //第一種方式: 轉Map 物件
- Map maps = (Map)JSON.parse(str);
- System.out.println("這個是用JSON類來解析JSON字串!!!");
- for (Object map : maps.entrySet()){
- System.out.println(((Map.Entry)map).getKey()+" " + ((Map.Entry)map).getValue());
- }
- //第二種方式: 轉Map 物件
- Map mapTypes = JSON.parseObject(str);
- System.out.println("這個是用JSON類的parseObject來解析JSON字串!!!");
- for (Object obj : mapTypes.keySet()){
- System.out.println("key為:"+obj+"值為:"+mapTypes.get(obj));
- }
- //第三種方式: 轉Map 物件
- Map mapType = JSON.parseObject(str,Map.class);
- System.out.println("這個是用JSON類,指定解析型別,來解析JSON字串!!!");
- for (Object obj : mapType.keySet()){
- System.out.println("key為:"+obj+"值為:"+mapType.get(obj));
- }
- //第四種方式: 轉Map 物件
- /**
- * JSONObject是Map介面的一個實現類
- */
- Map json = (Map) JSONObject.parse(str);
- System.out.println("這個是用JSONObject類的parse方法來解析JSON字串!!!");
- for (Object map : json.entrySet()){
- System.out.println(((Map.Entry)map).getKey()+" "+((Map.Entry)map).getValue());
- }
- //第五種方式:json字串 轉 json物件
- /**
- * JSONObject是Map介面的一個實現類
- */
- JSONObject jsonObject = JSONObject.parseObject(str);
- System.out.println("這個是用JSONObject的parseObject方法來解析JSON字串!!!");
- for (Object map : json.entrySet()){
- System.out.println(((Map.Entry)map).getKey()+" "+((Map.Entry)map).getValue());
- }
- //第六種方式: 轉Map 物件
- /**
- * JSONObject是Map介面的一個實現類
- */
- Map mapObj = JSONObject.parseObject(str,Map.class);
- System.out.println("這個是用JSONObject的parseObject方法並執行返回型別來解析JSON字串!!!");
- for (Object map: json.entrySet()){
- System.out.println(((Map.Entry)map).getKey()+" "+((Map.Entry)map).getValue());
- }
- System.out.println(json);
- }
- }
4. Map集合和JSON互轉
a). map 轉 json字串
String jsonStr = JSON.toJSONString(myMap);
Map mapTypes = JSON.parseObject(str);
4. JSON物件 和 json字串 互轉
a). String jsonStr = jsonObj.toString();
b). JSONObject jsonobject = JSONObject.parseObject(jsonStr);
5. java實體類 和 json字串 互轉
- package fastJson.test;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.alibaba.fastjson.serializer.SerializerFeature;
- public class FastJsonTest
- {
- /**
- * java例項 轉 json字串
- */
- public void toJsonString()
- {
- User user = new User("testFastJson001", "maks", 105);
- String text = JSON.toJSONString(user);
- System.out.println("toJsonString()方法:text=" + text);
- // 輸出結果:text={"age":105,"id":"testFastJson001","name":"maks"}
- }
- /**
- * json字串 反序列化為 json物件
- */
- public void parseJsonObject()
- {
- String text = "{\"age\":105,\"id\":\"testFastJson001\",\"name\":\"maks\"}";
- JSONObject json = JSON.parseObject(text);
- System.out.println("parseJsonObject()方法:json==" + json);
- // 輸出結果:json=={"age":105,"id":"testFastJson001","name":"maks"}
- }
- /**
- * json字串 轉 java例項
- */
- public void parseBeanObject()
- {
- String text = "{\"age\":105,\"id\":\"testFastJson001\",\"name\":\"maks\"}";
- User user = (User) JSON.parseObject(text, User.class);
- System.out.println("parseBeanObject()方法:user==" + user.getId() + "," + user.getName() + "," + user.getAge());
- // 輸出結果:user==testFastJson001,maks,105
- }
- /**
- * java例項 轉 json物件
- */
- public void bean2Json()
- {
- User user = new User("testFastJson001", "maks", 105);
- JSONObject jsonObj = (JSONObject) JSON.toJSON(user);
- System.out.println("jsonObj==" + jsonObj);
- // 輸出結果:jsonObj=={"age":105,"id":"testFastJson001","name":"maks"}
- }
- /**
- * 全序列化 直接把java bean序列化為json文字之後,能夠按照原來的型別反序列化回來。支援全序列化,需要開啟SerializerFeature.WriteClassName特性
- */
- public void parseJSONAndBeanEachother()
- {
- User user = new User("testFastJson001", "maks", 105);
- SerializerFeature[] featureArr = { SerializerFeature.WriteClassName };
- String text = JSON.toJSONString(user, featureArr);
- System.out.println("parseJSONAndBeanEachother()方法:text==" + text);
- // 輸出結果:text=={"@type":"fastJson.test.User","age":105,"id":"testFastJson001","name":"maks"}
- User userObj = (User) JSON.parse(text);
- System.out.println("parseJSONAndBeanEachother()方法:userObj==" + userObj.getId() + "," + userObj.getName() + "," + userObj.getAge());
- // 輸出結果:userObj==testFastJson001,maks,105
- }
- public static void main(String[] args)
- {
- FastJsonTest test = new FastJsonTest();
- // 序列化
- test.toJsonString();
- // 反序列化為json物件
- test.parseJsonObject();
- // 反序列化為javaBean物件
- test.parseBeanObject();
- // 將javaBean轉化為json物件
- test.bean2Json();
- // 全序列化
- test.parseJSONAndBeanEachother();
- }
- }
控制檯輸出結果:
- toJsonString()方法:text={"age":105,"id":"testFastJson001","name":"maks"}
- parseJsonObject()方法:json=={"age":105,"id":"testFastJson001","name":"maks"}
- parseBeanObject()方法:user==testFastJson001,maks,105
- bean2Json()方法:jsonObj=={"age":105,"id":"testFastJson001","name":"maks"}
- parseJSONAndBeanEachother()方法:text=={"@type":"fastJson.test.User","age":105,"id":"testFastJson001","name":"maks"}
- parseJSONAndBeanEachother()方法:userObj==testFastJson001,maks,105
附:
相關推薦
使用 fastjson 在java中進行 json字串和物件的互轉
前提:我們在這裡只使用fastjson的轉json的jar依賴包 <!-- 轉json字串 --><dependency> <groupId>com.alibaba</groupId> <ar
JSON字串和物件互轉並解決json物件首字母小寫
首先假設有一個實體物件user: private String UserId; @JSONField(name="UserId") private String getUserId (){ return UserId; } private String setUserId(Stri
Swift3 JSON字串和字典互轉(JSON字串轉字典和字典轉JSON字串)
https://www.cnblogs.com/yajunLi/p/6549859.html 直接上程式碼吧 1、JSONString轉換為字典 /// JSONString轉換為字典 /// /// - Parameter jsonStrin
fastJson中常用JSON字串和Java物件互轉
1.使用fastJson,首先引入fastJson依賴 <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba<
JAVA 中 提取 JSON 字串中的 KEY 和 VALUE 值
JSONObject jobj = JSONObject.fromObject(conditions == null ? "{}" : conditions); Iterator it = jobj.keys(); String infotype = "
java中的類鎖和物件鎖對比分析
說到鎖機制,不得不提到Thread執行緒,而又不得不提到synchronized關鍵字,這個單詞的意思是表示“同步”的意思。用它去修飾方法函式的時候,如果有多個執行緒同時呼叫這個方法函式的時候,那麼當一個執行緒獲得鎖的時候,其他的執行緒只
Json字串和物件之間的區別和轉化
一、什麼是Json? Json是一種輕量級的資料交換格式。 {} 花括號表示物件,[] 中括號表示陣列,”” 雙引號內是屬性或值,: 冒號表示後者是前者的值(這個值可以是字串、數字、也可以是另一個數組或物件)。 二、什麼是Json物件?什麼是Json字串? (i)Json物件:是直接可以使用
利用Google Gson實現JSON字串和物件之間相互轉換
最近一個專案需要用到JSON,需要在JSON字串和物件之間相互轉換,在網上找了些資料,發現google的Gson還是比較不錯的。 廢話不說,下面是簡單的例子: 先上原始碼:下載(包含jar包) Person實體類 package com.hsun.json; /** * Pe
在Java中進行序列化和反序列化
物件序列化的目標是將物件儲存在磁碟中,或者允許在網路中直接傳輸物件。 物件序列化允許把記憶體中的Java物件轉換成平臺無關的二進位制流,從而允許把這種二進位制流持久儲存在磁碟上或者通過網路將這種二進位制流傳輸到另外一個網路節點。 其他程式一旦
java中擷取string字串和以逗號分割,StringBuffer的運用
package com.yanshu.test; import com.yanshu.utils.ConnSql; public class StringBu {/*** 傳入引數即儲存名稱預編譯處理* @param storageName 儲存過程的名稱* @param
Java中類載入過程和物件建立過程
類載入過程: 1, JVM會先去方法區中找有沒有相應類的.class存在。如果有,就直接使用;如果沒有,則把相關類的.class載入到方法區 2, 在.class載入到方法區時,會分為兩部分載入:先載入非靜態內容,再載入靜態內容 3, 載入非靜態內容:把.class中的所有
json字串和物件的相互轉化
<script type="text/javascript"> var text='[{"id":1,"name":"zs"},{"id":2,"name":"ls"}]'; //jso
JSON字串和物件之間的轉換詳解
JSON(JavaScript Object Notation) 是JavaScript程式語言的一個子集。正因JSON是JavaScript的一個子集,所以它可清晰的運用於此語言中。 eval函式 JSON文字轉換為物件 為了將JSON文字轉換為物件,可以使用eva
JAXB實現XML和java物件互轉以及soapXml和物件互轉需要注意的地方
public class JaxbXmlUtil { private static final String DEFAULT_ENCODING = "UTF-8"; /** * pojo轉換成xml 預設編碼UTF-8 */ public static
java中整型與字元型互轉
1、字元型轉換成整型: 1.轉換成Int型 int/Integer num = Integer.parseInt(String str); 2.轉換成long型 Long/long num = Long.parseLong(String str); 3
南瓜先生~xml字串和javaBean互轉
1.寫一個工具類: public static String convertToXml(Object obj, String encoding) { String result = null; try { JAXBContext
IP字串和數字互轉
public static long ip2Long(String ipStr){ if(ipStr == null || ipStr.length() == 0){ return 0; } int position1 = ipStr.
List、DataTable和物件互轉,List轉DataTable異常Nullable解決方案
using System; using System.Collections.Generic; using System.Data; using System.Reflection; namespace ClassLibrary1 { public class D
java中的二進位制int與byte互轉以及&0xff的作用
1. 按位與& :兩位全位1,結果才為1; 0&0=0; 0&1=0 ; 1&1=1 如:51 &5 =0011 0011 & 0000 0101=0000 0001 = 1 作用:清零、取一個數中指定位(即
extjs4中json字串和json物件轉換
用extjs也有一段時間了,但有些東西就是記不住,就比如json字串和json物件的轉換,我還是把它記下來。 將json字串轉為json物件 var str = '{ "name": "張三", "age": "23" }' var obj = JSON.parse(str); 將j