当前位置:首页 » 《资源分享》 » 正文

【Java Web】JSON 以及 JSON 转换

22 人参与  2024年12月31日 14:01  分类 : 《资源分享》  评论

点击全文阅读


JSON(JavaScript Object Notation)一种灵活、高效、轻量级的数据交换格式,广泛应用于各种数据交换和存储场景。

基本特点

1、简单易用:JSON格式非常简单,易于理解和使用。

2、轻量级:相比XML等其他数据格式,JSON占用的空间更小,传输效率更高。

3、跨平台:JSON是一种纯文本格式,可以轻松地在不同的系统和编程语言之间交换数据。

4、可读性强:JSON格式的数据结构清晰,易于阅读和调试。

数据结构

JSON支持两种数据结构

1、对象(Object):无序的键值对集合,用大括号 {} 包围。键必须是字符串,值可以是任意有效的JSON数据类型。

{  "name": "John",  "age": 30,  "isStudent": false,  "hobbies": ["reading", "coding", "traveling"]}

2、数组(Array):有序的值集合,用方括号 [] 包围。数组中的值可以是任意有效的JSON数据类型。

[  "apple",  "banana",  42,  true,  {    "name": "Alice",    "age": 25  }]

在Java中使用 org.json.JSONObject 类来解析和生成JSON数据。

import org.json.JSONObject;// 解析JSONString jsonString = "{\"name\": \"John\", \"age\": 30}";JSONObject jsonObject = new JSONObject(jsonString);System.out.println(jsonObject.getString("name"));  // 输出: John// 生成JSONJSONObject jsonObject = new JSONObject();jsonObject.put("name", "John");jsonObject.put("age", 30);String jsonString = jsonObject.toString();System.out.println(jsonString);  // 输出: {"name":"John","age":30}

转换

fastjson 是阿里巴巴开源的一个高性能的JSON库
在这里插入图片描述
导入项目
在这里插入图片描述

1、对象或集合(内套集合也可以)转JSON对象

import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;public class User {    private String name;    private int age;    // getter 和 setter 方法}public class JsonExample {    public static void main(String[] args) {        User user = new User();        user.setName("John");        user.setAge(30);        // 对象转JSON字符串        String jsonString = JSON.toJSONString(user);        System.out.println(jsonString);  // 输出: {"name":"John","age":30}        // 对象转JSONObject        JSONObject json = new JSONObject();        json.putAll(JSON.parseObject(jsonString));        System.out.println(json.toJSONString());  // 输出: {"name":"John","age":30}    }}

2、JSON格式字符串与JSON对象之间的转换

import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;public class JsonExample {    public static void main(String[] args) {        String j = "{\"goodslist\":[{\"goods_id\":1}],\"name\":\"张三\"}";        // JSON字符串转JSONObject        JSONObject jsonObject = JSON.parseObject(j);        System.out.println(jsonObject.toJSONString());  // 输出: {"goodslist":[{"goods_id":1}],"name":"张三"}        // 或者        JSONObject jsonObject2 = JSONObject.parseObject(j);        System.out.println(jsonObject2.toJSONString());  // 输出: {"goodslist":[{"goods_id":1}],"name":"张三"}    }}

3、JSON字符串-数组类型与JSONArray之间的转换

import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;public class JsonExample {    public static void main(String[] args) {        String JSON_ARRAY_STR = "[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]";        // JSON字符串转JSONArray        JSONArray jsonArray = JSON.parseArray(JSON_ARRAY_STR);        System.out.println(jsonArray.toJSONString());  // 输出: [{"studentName":"lily","studentAge":12},{"studentName":"lucy","studentAge":15}]    }}

4、复杂JSON格式字符串与JSONObject之间的转换

import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;public class JsonExample {    public static void main(String[] args) {        String j = "{\"goodslist\":[{\"goods_id\":1}],\"name\":\"张三\"}";        // 复杂JSON字符串转JSONObject        JSONObject jsonObject = JSON.parseObject(j);        System.out.println(jsonObject.toJSONString());  // 输出: {"goodslist":[{"goods_id":1}],"name":"张三"}    }}

5、JSON字符串转JAVA对象

import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.TypeReference;public class User {    private String name;    private int age;    // getter 和 setter 方法}public class JsonExample {    public static void main(String[] args) {        String j = "{\"name\":\"张三\",\"age\":30}";        // JSON字符串转User对象        User user = JSON.parseObject(j, new TypeReference<User>() {});        System.out.println(user.getName());  // 输出: 张三        System.out.println(user.getAge());   // 输出: 30    }}

6、JSON字符串集合转LIST对象

import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.TypeReference;public class Goods {    private int goods_id;    // getter 和 setter 方法}public class JsonExample {    public static void main(String[] args) {        String str = "[{\"goods_id\":1},{\"goods_id\":2}]";        // JSON字符串集合转List<Goods>对象        List<Goods> goodslist = JSON.parseObject(str, new TypeReference<ArrayList<Goods>>() {});        for (Goods goods : goodslist) {            System.out.println(goods.getGoods_id());        }        // 输出: 1        // 输出: 2    }}
JSON字符串转JSON对象:使用 JSON.parseObject()JSONObject.parseObject()JSON对象转JSON字符串:使用 JSON.toJSONString()jsonObject.toJSONString()JSON字符串转JSONArray:使用 JSON.parseArray()JSON字符串转Java对象:使用 JSON.parseObject() 并指定目标类或 TypeReferenceJSON字符串集合转List对象:使用 JSON.parseObject() 并指定 TypeReference

点击全文阅读


本文链接:http://zhangshiyu.com/post/209758.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 祖母寿宴,侯府冒牌嫡女被打脸了(沈屿安秦秀婉)阅读 -
  • 《雕花锦年,昭都旧梦》(裴辞鹤昭都)完结版小说全文免费阅读_最新热门小说《雕花锦年,昭都旧梦》(裴辞鹤昭都) -
  • 郊区41号(许洛竹王云云)完整版免费阅读_最新全本小说郊区41号(许洛竹王云云) -
  • 负我情深几许(白诗茵陆司宴)完结版小说阅读_最热门小说排行榜负我情深几许白诗茵陆司宴 -
  • 九胞胎孕妇赖上我萱萱蓉蓉免费阅读全文_免费小说在线看九胞胎孕妇赖上我萱萱蓉蓉 -
  • 为保白月光,侯爷拿我抵了债(谢景安花田)小说完结版_完结版小说全文免费阅读为保白月光,侯爷拿我抵了债谢景安花田 -
  • 陆望程映川上官硕《我的阿爹是带攻略系统的替身》最新章节阅读_(我的阿爹是带攻略系统的替身)全章节免费在线阅读陆望程映川上官硕
  • 郑雅琴魏旭明免费阅读_郑雅琴魏旭明小说全文阅读笔趣阁
  • 头条热门小说《乔书意贺宴临(乔书意贺宴临)》乔书意贺宴临(全集完整小说大结局)全文阅读笔趣阁
  • 完结好看小说跨年夜,老婆初恋送儿子故意出车祸_沈月柔林瀚枫完结的小说免费阅读推荐
  • 热推《郑雅琴魏旭明》郑雅琴魏旭明~小说全文阅读~完本【已完结】笔趣阁
  • 《你的遗憾与我无关》宋怀川冯洛洛无弹窗小说免费阅读_免费小说大全《你的遗憾与我无关》宋怀川冯洛洛 -

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1