首页 > 其他分享 >JSON是什么?JSON的简单介绍及使用

JSON是什么?JSON的简单介绍及使用

时间:2023-06-09 10:44:53浏览次数:52  
标签:对象 json 介绍 System JSON 简单 println out

一、JSON介绍

JSON(JavaScript Object Notation)是一种数据结构,当我们需要在不同的应用程序之间传递数据时,我们需要一种通用的格式来表示数据。
相比xml交换格式来说,因为解析xml比较的复杂且需要编写大段的代码,而 JSON 数据更小,也更容易解析。

1、JSON基本语法

JSON 数据与JAVA中的 Map 集合类型一样,都是由 key : value 组成,键和值之间使用 : 分割,多个键值对使用 分割。

下面是一个标准的JSON数据结构:

{
   "name": "John",
   "age": 30,
   "city": "New York"
}

2、JSON数据类型

我们的 JSON 数据类型分为 JSON 对象JSON 数组 这两种类型,可以根据下面的这个 JSON 数据看一下。

{
  "name": "John Smith",
  "age": 30,
  "isMarried": false,
  "hobbies": ["reading", "traveling"],
  "address": {
    "street": "123 Main St",
    "city": "Anytown",
    "state": "CA",
    "zip": "12345"
  }
}
2.1、JSON对象

使用 { } 花括号表示是一个 JSON 对象,每个键必须是一个字符串,每个值可以是一个字符串数字布尔值null数组或对象

在这个JSON数据中,整个数据可以看成一个 JSON 对象,花括号下的数据都是这个JSON对象的属性。

2.2、JSON数组

使用 [ ] 分括号表示这是一个JSON数组,一个数组可以包含多个值,也可以包含多个对象。

二、JSON数据处理

JSON 数据结构是一种轻量级的数据交换格式,具有语法简单、易于阅读和编写、容易解析和生成等特点,因此在 Web 开发、API 开发、移动应用开发等领域得到了广泛的应用。

1、JSON处理常用框架

  • FastJson:FastJSON是阿里开发的处理JSON数据框架,以性能著称,API使用也较为方便。
  • Jackson:一个流行的JSON处理框架,可以用于序列化和反序列化Java对象和JSON数据。SpringMVC中使用的默认解析器就是使用的Jackson。
  • Gson:Google开发的JSON处理库,可以将Java对象转换为JSON字符串,并将JSON字符串转换为Java对象,也是目前功能最全的Json解析神器。

2、FastJson使用

2.1 引入依赖
        <!-- fastjson -->
        <dependency>
            <groupId>com.alibaba.fastjson2</groupId>
            <artifactId>fastjson2</artifactId>
            <version>2.0.33</version>
        </dependency>
2.2 API使用

分为 JSONObjectJSONArray 两个类,都可以使用 toJSONString() 和 parseObject() 方法来将 Java 对象转换为 JSON,反之亦然。

我这使用的是最新的2.0版本,如果是 1.0+ 版本的话有些 API会有些许变化。

  • JSONObject
        Student student = Student.builder()
                .sno(1)
                .sname("小李")
                .age(19)
                .clazz("1001")
                .subject(new String[]{"语文","数学","英语"})
                .build();

        // 转为JSON对象
        JSONObject object = JSONObject.from(student);
        // java 对象 转为Json字符串
        String jsonString = JSONObject.toJSONString(student);
        System.out.println(jsonString);
        // json 转为java对象
        Student student1 = JSONObject.parseObject(jsonString, Student.class);
        System.out.println(student1);

image

  • JSONArray
        // 转为JSON数组
        JSONArray jsonArray = JSONArray.from(student.getSubject());
        // 将数组或集合转为JSON字符串
        String jsonArrayString = JSONArray.toJSONString(student.getSubject());
        System.out.println(jsonArrayString);
        // 将数组或集合转为集合
        List<String> parseArray = JSONArray.parseArray(jsonArrayString, String.class);
        System.out.println(parseArray);

image

3、Gson使用

3.1 引入依赖
        <!-- gson -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.9.0</version>
        </dependency>
3.2 API使用

使用的对象和结果与上面的一致。

        Gson gson = new Gson();
        // 将对象转为 json 字符串
        String json = gson.toJson(student);
        System.out.println(json);
        // 将数组转为 json 字符串
        String toJson = gson.toJson(student.getSubject());
        System.out.println(toJson);
        // 将 json 转为对象
        Student student1 = gson.fromJson(json, Student.class);
        System.out.println(student1);

4、Jackson使用

4.1 引入依赖
        <!-- jsckson -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.11.4</version>
        </dependency>
4.2 API使用
        ObjectMapper objectMapper = new ObjectMapper();
        // 将对象转为 json 字符串
        String valueAsString = objectMapper.writeValueAsString(student);
        // 将对象转为 json 字符串
        String valueArray = objectMapper.writeValueAsString(student.getSubject());
        System.out.println(valueAsString);
        // 将 json 转为对象
        Student student1 = objectMapper.readValue(valueAsString, Student.class);
        System.out.println(student1);

标签:对象,json,介绍,System,JSON,简单,println,out
From: https://www.cnblogs.com/Snowclod/p/17468145.html

相关文章

  • jquery简单体验
    是继prototype之后又一个优秀的Javascript框架。对prototype我使用不多,简单了解过。但使用上jquery之后,马上被她的优雅吸引住了。有人使用这样的一比喻来比较prototype和jquery:prototype就像Java,而jquery就像ruby.实际上我比较喜欢java(少接触Ruby罢了)但是jquery的简单的实用的确......
  • 潜在失效模式及其影响分析(DFMEA)介绍
    DFMEA是潜在失效模式及其影响分析(DesignFailureModeandEffectsAnalysis)的缩写。DFMEA是一种对产品设计的预防性质量管理工具,旨在识别、评估和减少产品设计中的潜在失效模式及其影响。DFMEA通常由一个跨职能团队完成,包括产品开发工程师、测试工程师、供应商以及其他关键领域专......
  • 编写一个简单的COM组件
    参考网站:编写一个简单的COM组件_arayofsunshine(1)用MIDL编写.idl文件//将以下代码保存成IXIYIZ.idl文件//在命令行上进行编译,编译命令://midlIXIYIZ.idl//生成IXIYIZ.h,dlldata.c,IXIYIZ.h,IXIYIZ_p.c//其中IXIYIZ.h,IXIYIZ.h文件是我们目前所需要的import"un......
  • 非接触式红外液位开关介绍
    非接触式红外液位开关也叫(分离式液位传感器),采用的是光学原理检测。例如在加湿器上的应用,将非接触式红外开关安装于设备底部位置,水箱上设计一个透明棱镜结构,当液位低于传感器检测点时,传感器则会发出信号提醒加水,当水箱被拿走时传感器则会停止检测,此类传感器不仅可以检测缺水,也能检测......
  • 简单的WebSocket对话
    步骤选择一个WebSocket服务器,这里选择到的模块是ws模块npmiws创建一个WebSocket服务器新建一个server.js编写如下代码constWebSocket=require('ws');constwss=newWebSocket.Server({port:3000});wss.on('connection',(socket)=>{console.l......
  • F12-Network面板介绍
    前言在测试人员测试过程中经常需要通过抓包来区分一些前后端的Bug,特别是Web端的测试,利用浏览器中的F12开发者选项,就能进行网站界面测试、调试,分析网页所出现的问题,查看html元素、查看响应事件等方面。F12开发者工具面板用Google打开一个页面,点击键盘右上方的F12按钮,弹出F12开发者......
  • 实现一个简单的时间驱动处理框架
    事件驱动框架允许程序处理外部事件,如网络连接、文件I/O、超时和信号。事件驱动框架可以让程序通过回调函数处理不同的事件,回调函数可以在事件触发时立即被调用。要实现一个简单事件驱动框架,首先需要创建一个事件处理函数,它是根据发生的不同事件调用不同的回调函数。然后,我们......
  • JS 将form表单数据快速转化为object对象(json对象)
    JS将form表单数据快速转化为object对象(json对象)jaymou于2020-03-0311:11:05发布3534收藏3分类专栏:前端文章标签:javascriptjquery版权前端专栏收录该内容5篇文章0订阅订阅专栏直接上代码/***将Form的数据转化成Javascript的Json对象*/$.fn.seri......
  • 移动语义的简单示例
    下面是一个使用移动语义的简单示例:#include<iostream>#include<string>classMyString{public:MyString():m_data(nullptr),m_size(0){}MyString(constchar*str):MyString(){m_size=strlen(str);m_data=newchar[m_size+1......
  • Java Kafka简单地将Map对象序列化为json
    最近用到kafka,想简单地把Map对象序列化为json发送到主题,直接用string序列化,生成的结果不是json,虽然格式很像,key都没有引号,可能是直接调用的toString方法。但是网上搜了一圈,都是spring组合或者其他不太简单的方案。在哔站看了一段视频受到启发,就实现了一个自定义json序列化类,......