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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

json字符串与对象互相转换

發布時間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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字符串与对象互相转换的全部內容,希望文章能夠幫你解決所遇到的問題。

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