JSON是什么?认识 json

news2025/1/10 1:24:45

目录

一 Json定义

二 Json语法规则

三 json 的代码演示


一 Json定义

  1. 轻量级的文本数据交换格式
  2. 具有自我描述性【看到某个Json数据就能知道它的特点】
  3. 比xml传输速度快【跨平台】

二 Json语法规则

(1)语法

  • 两种数据结构:对象和数组
    • 大括号内为对象
    • 中括号内为数组
  • 对象中的数据由名称/值对构成
    • 值的类型可为字符串、数字、布尔值、null、数组、对象
    • 数据之间由逗号分隔

示例:

        ​​​​​​​        

(2)构成要素

1.对象{ }   2.数组[ ]   3.属性名:属性值   4.逗号(多个数据之间由逗号分隔)

(3)属性值类型种类

字符串、数字、布尔值、null、数组、对象

三 json 的代码演示

步骤1:Json解析框架fastjson-1.2.47.jar【使用maven的pom依赖管理】

步骤2:创建maven工程,并创建标准目录

步骤3:实现java对象转成Json字符串

        步骤3.1 创建Java对象

package org.example;

import java.util.List;

public class Student {
    private String name;
    private int age;
    private List<String> love;
    public Student() {
    }

    public Student(String name, int age, List<String> love) {
        this.name = name;
        this.age = age;
        this.love = love;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public List<String> getLove() {
        return love;
    }

    public void setLove(List<String> love) {
        this.love = love;
    }
}

        步骤3.2 pom引入fastjson的依赖

    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.47</version>
    </dependency>

        步骤3.3 测试类转换

package org.example;

import com.alibaba.fastjson.JSON;

import java.util.Arrays;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        String []array = new String[]{"乔尼","杰洛","大总统"};
        List<String>list = Arrays.asList(array);

        //1.构建对象
        Student student = new Student("jojo",1,list);

        String s = JSON.toJSON(student).toString();
        System.out.println(s);

    }
}

        效果:

         步骤4:实现JSON字符串转成Java对象

package org.example;

import com.alibaba.fastjson.JSON;

import java.util.Arrays;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        //步骤1:定义Json字符串
        String st = new String("{\"love\":[\"乔尼\",\"杰洛\",\"大总统\"],\"name\":\"jojo\",\"age\":1}\n");
        //步骤2:将字符串转换成Java对象【通过parseObject方法】
        Student student = JSON.parseObject(st,Student.class);
        //步骤3:输出Java对象中的方法
        System.out.println(student.getName());
        System.out.println(student.getAge());
        System.out.println(student.getLove());
    }
}

        效果: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/981948.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LGFormer:LOCAL TO GLOBAL TRANSFORMER FOR VIDEO BASED 3D HUMAN POSE ESTIMATION

基于视频的三维人体姿态估计的局部到全局Transformer 作者&#xff1a;马海峰 *&#xff0c;陆克 * †&#xff0c;薛健 *&#xff0c;牛泽海 *&#xff0c;高鹏程† * 中国科学院大学工程学院&#xff0c;北京100049 鹏程实验室&#xff0c;深圳518055 来源&#xff1a;202…

cartographer 学习

cartographer 学习 编译并运行代码 由于cartographer整体分成了两个包 一个是cartographer,不带ros的内容另一个是cartographer_ros&#xff0c;是已ros项目构建的 这样因为带了普通cmake的包&#xff0c;就没法使用catkin_make了&#xff0c;只能使用catkin_make_isolated …

Global mapper24.1最新中文版本教程以及安装包

Global mapper成为如此用户友好的数据编辑、分析等工具的部分原因是它如何处理已删除的要素。从撤消管理器到独立工作空间&#xff0c;已删除的功能并不总是消失。矢量特征以一种简单的方式&#xff0c;当您在需要时遇到它时几乎感觉像魔术一样&#xff0c;矢量特征存储在工作区…

【python基础知识】8.编程思维:如何解决问题-思维篇

文章目录 前言瓶颈1&#xff1a;知识学完就忘用法查询笔记深度理解笔记知识管理 瓶颈2&#xff1a;缺乏解题能力如何解题分析问题&#xff0c;明确结果思考需要的知识&#xff0c;或搜索新知识思考切入点尝试解决问题的一部分尝试重复1-4步 总结 前言 Hi&#xff0c;欢迎来到第…

three.js 纹理

默认情况下&#xff0c;您在 Three.js 中渲染的所有内容都会发送到屏幕上。毕竟&#xff0c;如果你看不到它&#xff0c;渲染它有什么意义呢&#xff1f;事实证明&#xff0c;有一个非常重要的点&#xff1a;在数据发送到屏幕&#xff08;从而丢失&#xff09;之前捕获数据。 …

Apache Doris 2.0 如何实现导入性能提升 2-8 倍

数据导入吞吐是 OLAP 系统性能的重要衡量标准之一&#xff0c;高效的数据导入能力能够加速数据实时处理和分析的效率。随着 Apache Doris 用户规模的不断扩大&#xff0c; 越来越多用户对数据导入提出更高的要求&#xff0c;这也为 Apache Doris 的数据导入能力带来了更大的挑战…

二进制+八进制+十进制+十六进制的转换关系

二进制+八进制+十进制+十六进制的转换关系 1.十进制:由0-9这九个数字组成,逢10进1,我们日常生活中用的就是十进制; 2.二进制:由0和1两个数字组成,逢2进1; 3.八进制:由0-7这8个数字组成,逢8进1; 4.十六进制:由0-9、A、B、C、D、E、F组成,A-F对应的是10-15,逢16进…

【Redis】为什么要学 Redis

文章目录 前言一、Redis 为什么快二、Redis 的特性2.1 将数据储存到内存中2.2 可编程性2.3 可扩展性2.4 持久性2.5 支持集群2.6 高可用性 三、Redis 的应用场景四、不能使用 Redis 的场景 前言 关于为什么要学 Redis 这个问题&#xff0c;一个字就可以回答&#xff0c;那就是&…

创建java文件 自动添加作者、时间等信息 – IDEA 技巧

文章目录 效果修改位置配置信息 效果 每次创建文件的时候&#xff0c;自动加上作者、时间等信息 修改位置 打开&#xff1a;File —> Settings —> Editor —> File and Code Templates —> includes —> FileHeader 配置信息 /*** author : JavaPub 王仕宇* d…

文件包含漏洞实战

加粗样式 文章目录 漏洞原理特点利用方法包含图片木马读取敏感文件 封装协议 复现环境准备漏洞点代码审计验证漏洞点读取敏感文件 文件包含漏洞文件上传漏洞深度利用中国蚁剑-getshell突破文件上传漏洞限制读取文件源码执行PHP命令远程文件包含 文件包含漏洞防御 本次测试仅供…

SMB 协议详解之-SMB1文件写入交互过程详解

本文介绍一下SMB协议的交互过程。由于SMB涉及非常多的字段,绝大多数人员没有必要对每个字段进行深入的了解(那可能更多的是协议开发人员需要做的工作)。对于SMB协议的学习,主要的目的是能够根据数据包的交互过程,还原出这次SMB交互干了什么,产生了哪些操作。因此本文聚焦…

centos执行systemctl restart命令报连接超时

centos执行systemctl restart命令报连接超时 Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: GDBus.Error:org.freedesktop.DBus.Error.TimedOut: Activation of org.freedesktop.PolicyKit1 tim…

LeetCode 18 四数之和

题目链接 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目解析 固定两个数&#xff0c;然后利用双指针来进行剩下两个数的筛选 主要使用的是三数之和的思想&#xff0c;具体可以看我上篇博客 注意去重 代码 class Solution { public:vector<…

学习笔记二十:Pod生命周期-启动钩子、停止钩子

Pod生命周期-启动钩子、停止钩子 Pod生命周期pod在整个生命周期的过程中总会处于以下几个状态&#xff1a;pod生命周期的重要行为&#xff1a;容器探测三种探针用于Pod检测 容器的重启策略定义是否重启Pod对象pod的终止过程 Init容器初始化容器与主容器区别是:初始化容器使用 P…

[Arduino电子近源渗透] Night of 19 v1.2.0

Github>https://github.com/MartinxMax/Night_of_19 首页 历史更新: Night of 19 v1.2.0 :自动获取IP,提升稳定性 Night of 19 v1.0.0 :需要静态配置IP地址 功能说明 受害者反弹shell到该设备,该设备通过蓝牙转发数据给攻击者,攻击者可远程命令执行 使用方法 #pyt…

ES6的面向对象编程以及ES6中的类和对象

一、面向对象 1、面向对象 &#xff08;1&#xff09;是一种开发思想&#xff0c;并不是具体的一种技术 &#xff08;2&#xff09;一切事物均为对象&#xff0c;在项目中主要是对象的分工协作 2、对象的特征 &#xff08;1&#xff09;对象是属性和行为的结合体 &#x…

Nodejs+vue+mysql网上药店购药系统 9h2k5

本毕业设计的内容是设计并且实现一个基于vue.js框架的空巢老人购药系统。采用MYSQL为数据库开发平台&#xff0c;nodejs语言&#xff0c;网络信息服务作为应用服务器。空巢老人购药系统的功能已基本实现&#xff0c;主要用户、家属、养生知识、药品信息、身体信息等。 论文主要…

java -- 深拷贝和浅拷贝的区别 如何实现深拷贝和浅拷贝

java -- 深拷贝和浅拷贝的区别 & 如何实现深拷贝和浅拷贝 一、 深拷贝和浅拷贝的区别二、重载clone()方法 一、 深拷贝和浅拷贝的区别 浅拷贝&#xff1a;对基本数据类型进行值传递&#xff0c;对引用数据类型进行引用传递般的拷贝&#xff0c;此为浅拷贝。 深拷贝&#x…

C#,数值计算——NRf3的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class NRf3 : UniVarRealValueFun { public double xsav, ysav; public RealValueFun func3d; public NRf3() { } public double funk(double z) { …

InnoDB全文索引是如何实现的?

分析&回答 全文索引的底层实现为倒排索引。 为什么叫倒排索引&#xff08;反向索引&#xff09; 当表上存在全文索引时&#xff0c;就会隐式的建立一个名为FTS_DOC_ID的列&#xff0c;并在其上创建一个唯一索引&#xff0c;用于标识分词出现的记录行。你也可以显式的创建…