【Java Web】JSON 以及 JSON 转换

打印 上一主题 下一主题

主题 884|帖子 884|积分 2652

JSON(JavaScript Object Notation)一种机动、高效、轻量级的数据交换格式,广泛应用于各种数据交换和存储场景。
基本特点
1、简单易用:JSON格式非常简单,易于理解和使用。
2、轻量级:相比XML等其他数据格式,JSON占用的空间更小,传输效率更高。
3、跨平台:JSON是一种纯文本格式,可以轻松地在不同的体系和编程语言之间交换数据。
4、可读性强:JSON格式的数据布局清晰,易于阅读和调试。
数据布局
JSON支持两种数据布局
1、对象(Object):无序的键值对集合,用大括号 {} 包围。键必须是字符串,值可以是恣意有用的JSON数据范例。
  1. {
  2.   "name": "John",
  3.   "age": 30,
  4.   "isStudent": false,
  5.   "hobbies": ["reading", "coding", "traveling"]
  6. }
复制代码
2、数组(Array):有序的值集合,用方括号 [] 包围。数组中的值可以是恣意有用的JSON数据范例。
  1. [
  2.   "apple",
  3.   "banana",
  4.   42,
  5.   true,
  6.   {
  7.     "name": "Alice",
  8.     "age": 25
  9.   }
  10. ]
复制代码
在Java中使用 org.json.JSONObject 类来剖析和天生JSON数据。
  1. import org.json.JSONObject;
  2. // 解析JSON
  3. String jsonString = "{"name": "John", "age": 30}";
  4. JSONObject jsonObject = new JSONObject(jsonString);
  5. System.out.println(jsonObject.getString("name"));  // 输出: John
  6. // 生成JSON
  7. JSONObject jsonObject = new JSONObject();
  8. jsonObject.put("name", "John");
  9. jsonObject.put("age", 30);
  10. String jsonString = jsonObject.toString();
  11. System.out.println(jsonString);  // 输出: {"name":"John","age":30}
复制代码
转换
fastjson 是阿里巴巴开源的一个高性能的JSON库

导入项目

1、对象或集合(内套集合也可以)转JSON对象
  1. import com.alibaba.fastjson.JSON;
  2. import com.alibaba.fastjson.JSONObject;
  3. public class User {
  4.     private String name;
  5.     private int age;
  6.     // getter 和 setter 方法
  7. }
  8. public class JsonExample {
  9.     public static void main(String[] args) {
  10.         User user = new User();
  11.         user.setName("John");
  12.         user.setAge(30);
  13.         // 对象转JSON字符串
  14.         String jsonString = JSON.toJSONString(user);
  15.         System.out.println(jsonString);  // 输出: {"name":"John","age":30}
  16.         // 对象转JSONObject
  17.         JSONObject json = new JSONObject();
  18.         json.putAll(JSON.parseObject(jsonString));
  19.         System.out.println(json.toJSONString());  // 输出: {"name":"John","age":30}
  20.     }
  21. }
复制代码
2、JSON格式字符串与JSON对象之间的转换
  1. import com.alibaba.fastjson.JSON;
  2. import com.alibaba.fastjson.JSONObject;
  3. public class JsonExample {
  4.     public static void main(String[] args) {
  5.         String j = "{"goodslist":[{"goods_id":1}],"name":"张三"}";
  6.         // JSON字符串转JSONObject
  7.         JSONObject jsonObject = JSON.parseObject(j);
  8.         System.out.println(jsonObject.toJSONString());  // 输出: {"goodslist":[{"goods_id":1}],"name":"张三"}
  9.         // 或者
  10.         JSONObject jsonObject2 = JSONObject.parseObject(j);
  11.         System.out.println(jsonObject2.toJSONString());  // 输出: {"goodslist":[{"goods_id":1}],"name":"张三"}
  12.     }
  13. }
复制代码
3、JSON字符串-数组范例与JSONArray之间的转换
  1. import com.alibaba.fastjson.JSON;
  2. import com.alibaba.fastjson.JSONArray;
  3. public class JsonExample {
  4.     public static void main(String[] args) {
  5.         String JSON_ARRAY_STR = "[{"studentName":"lily","studentAge":12},{"studentName":"lucy","studentAge":15}]";
  6.         // JSON字符串转JSONArray
  7.         JSONArray jsonArray = JSON.parseArray(JSON_ARRAY_STR);
  8.         System.out.println(jsonArray.toJSONString());  // 输出: [{"studentName":"lily","studentAge":12},{"studentName":"lucy","studentAge":15}]
  9.     }
  10. }
复制代码
4、复杂JSON格式字符串与JSONObject之间的转换
  1. import com.alibaba.fastjson.JSON;
  2. import com.alibaba.fastjson.JSONObject;
  3. public class JsonExample {
  4.     public static void main(String[] args) {
  5.         String j = "{"goodslist":[{"goods_id":1}],"name":"张三"}";
  6.         // 复杂JSON字符串转JSONObject
  7.         JSONObject jsonObject = JSON.parseObject(j);
  8.         System.out.println(jsonObject.toJSONString());  // 输出: {"goodslist":[{"goods_id":1}],"name":"张三"}
  9.     }
  10. }
复制代码
5、JSON字符串转JAVA对象
  1. import com.alibaba.fastjson.JSON;
  2. import com.alibaba.fastjson.TypeReference;
  3. public class User {
  4.     private String name;
  5.     private int age;
  6.     // getter 和 setter 方法
  7. }
  8. public class JsonExample {
  9.     public static void main(String[] args) {
  10.         String j = "{"name":"张三","age":30}";
  11.         // JSON字符串转User对象
  12.         User user = JSON.parseObject(j, new TypeReference<User>() {});
  13.         System.out.println(user.getName());  // 输出: 张三
  14.         System.out.println(user.getAge());   // 输出: 30
  15.     }
  16. }
复制代码
6、JSON字符串集合转LIST对象
  1. import com.alibaba.fastjson.JSON;
  2. import com.alibaba.fastjson.TypeReference;
  3. public class Goods {
  4.     private int goods_id;
  5.     // getter 和 setter 方法
  6. }
  7. public class JsonExample {
  8.     public static void main(String[] args) {
  9.         String str = "[{"goods_id":1},{"goods_id":2}]";
  10.         // JSON字符串集合转List<Goods>对象
  11.         List<Goods> goodslist = JSON.parseObject(str, new TypeReference<ArrayList<Goods>>() {});
  12.         for (Goods goods : goodslist) {
  13.             System.out.println(goods.getGoods_id());
  14.         }
  15.         // 输出: 1
  16.         // 输出: 2
  17.     }
  18. }
复制代码


  • JSON字符串转JSON对象:使用 JSON.parseObject() 或 JSONObject.parseObject()。
  • JSON对象转JSON字符串:使用 JSON.toJSONString() 或 jsonObject.toJSONString()。
  • JSON字符串转JSONArray:使用 JSON.parseArray()。
  • JSON字符串转Java对象:使用 JSON.parseObject() 并指定目标类或 TypeReference。
  • JSON字符串集合转List对象:使用 JSON.parseObject() 并指定 TypeReference。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

玛卡巴卡的卡巴卡玛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表