json字符串与对象互相转换
生活随笔
收集整理的這篇文章主要介紹了
json字符串与对象互相转换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
阿里巴巴fastJson
Fastjson是一個Java語言編寫的JSON處理器。
1、遵循http://json.org標準,為其官方網站收錄的參考實現之一。
2、功能qiang打,支持JDK的各種類型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。
3、無依賴,不需要例外額外的jar,能夠直接跑在JDK上。
4、開源,使用Apache License 2.0協議開源。code.alibabatech.com/wiki/displa…
1 準備工作:
maven(jar) 依賴:
https://mvnrepository.com/artifact/com.alibaba/fastjson 復制代碼Api文檔:
GitHub: https://github.com/alibaba/fastjson/wiki/JSON_API_cnw3c: https://www.w3cschool.cn/fastjson/fastjson-jsonfield.html 復制代碼序列化API
package com.alibaba.fastjson;public abstract class JSON {// 將Java對象序列化為JSON字符串,支持各種各種Java基本類型和JavaBeanpublic static String toJSONString(Object object, SerializerFeature... features);// 將Java對象序列化為JSON字符串,返回JSON字符串的utf-8 bytespublic static byte[] toJSONBytes(Object object, SerializerFeature... features);// 將Java對象序列化為JSON字符串,寫入到Writer中public static void writeJSONString(Writer writer, Object object, SerializerFeature... features);// 將Java對象序列化為JSON字符串,按UTF-8編碼寫入到OutputStream中public static final int writeJSONString(OutputStream os, // Object object, // SerializerFeature... features);} 復制代碼JSON字符串反序列化API
package com.alibaba.fastjson;public abstract class JSON {// 將JSON字符串反序列化為JavaBeanpublic static <T> T parseObject(String jsonStr, Class<T> clazz, Feature... features);// 將JSON字符串反序列化為JavaBeanpublic static <T> T parseObject(byte[] jsonBytes, // UTF-8格式的JSON字符串Class<T> clazz, Feature... features);// 將JSON字符串反序列化為泛型類型的JavaBeanpublic static <T> T parseObject(String text, TypeReference<T> type, Feature... features);// 將JSON字符串反序列為JSONObjectpublic static JSONObject parseObject(String text); } 復制代碼2 新建pojo
public class User {private String name;private Integer id;private String grade;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getGrade() {return grade;}public void setGrade(String grade) {this.grade = grade;} } 復制代碼3 創建對象
User user = new User(); user.setGrade("1班"); user.setId(1); user.setName("zs");User user2 = new User(); user2.setGrade("2班"); user2.setId(2); user2.setName("ls");//新建數組 List<User> list = new ArrayList(); list.add(user); list.add(user2); 復制代碼4 序列化與反序列化:
1、 pojo 轉 Json 字符串
String s1 = JSON.toJSONString(user);System.out.println(s1); 復制代碼輸出
{"grade":"1班","id":1,"name":"zs"} 復制代碼2、 json字符串 轉 json 對象
JSONObject jsonObject = JSONObject.parseObject(s1);Object id = jsonObject.get("id"); //拿到idSystem.out.println(id);//1System.out.println("json對象轉json字符串 "+jsonObject.toJSONString()); 復制代碼輸出
json對象轉json字符串 {"grade":"1班","name":"zs","id":1} 1 復制代碼3、 json字符串 轉 pojo 對象
User user1 = JSON.parseObject(s1, User.class);System.out.println(user1.getName()); 復制代碼輸出
zs 復制代碼4、 json字符串 轉 list 對象
List<User> users = JSONArray.parseArray(s1, User.class); users.forEach(obj-> System.out.println(obj.toString())); 復制代碼輸出
com.alibaba.fastJson.User@762efe5d com.alibaba.fastJson.User@5d22bbb7 復制代碼5、 list轉json字符串
Object toJSON = JSON.toJSON(list);System.out.println("list-->jsonStr"+toJSON); 復制代碼輸出
list轉json字符串[{"grade":"1班","id":1,"name":"zs"},{"grade":"2班","id":2,"name":"ls"}] 復制代碼5、 json字符串 轉 Map
String str = "{\"1\":\"zs\",\"2\":\"ls\",\"4\":\" ww\",\"5\":\"ml\"}";//第一種Map maps = (Map) JSON.parse(str);System.out.println("第1種");for (Object obj : maps.keySet()) {System.out.println("key:" + obj + "value:" + maps.get(obj));}//第二種Map mapTypes = JSON.parseObject(str);System.out.println("第2種");for (Object obj : mapTypes.keySet()) {System.out.println("key:" + obj + "value:" + mapTypes.get(obj));}//第三種Map mapType = JSON.parseObject(str, Map.class);System.out.println("第3種");for (Object obj : mapType.keySet()) {System.out.println("key:" + obj + "value:" + mapTypes.get(obj));}//第四種/*** JSONObject是Map接口的一個實現類*/Map json = (Map) JSONObject.parse(str);//第五種Map jsonMap = (Map) JSONObject.parseObject(str); 復制代碼輸出
第1種 key:1value:zs key:2value:ls key:4value: ww key:5value:ml 第2種 key:1value:zs key:2value:ls key:4value: ww key:5value:ml 第3種 key:1value:zs key:2value:ls key:4value: ww key:5value:ml復制代碼總結
以上是生活随笔為你收集整理的json字符串与对象互相转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: How to solve random
- 下一篇: Dora.Interception,为.