java基础-json解析(代码片段)

Ocean:) Ocean:)     2022-12-27     453

关键词:

JSON

JSON格式概述

JavaScript Object Notation

JSON 数据格式与语言无关。即便它源自JavaScript,但目前很多编程语言都支持 JSON 格式数据的生成和解析。JSON 的官方 MIME 类型是 application/json,文件扩展名是 .json

数据格式

JSON对象


    "ID":1,
    "name":"ocean",
    "age":20

特征:

  • 数据形式键值对形式

    “键”:值

  • 数据支持 字符串,数字,布尔值

  • 大括号以内的数据

JSON对象数组

[
    
    	"ID":1,
    	"name":"ocean",
    	"age":20
	,
	
    	"ID":2,
    	"name":"ocean",
    	"age":20
	,
	
    	"ID":3,
    	"name":"jack",
    	"age":22
	
]

特征:

  • 数据格式使用 [] 包含
  • [] 里都是JSON格式对象
  • 每一个对象之间使用逗号隔开,最后一个元素不需要逗号

JSON数据验证

网站:https://www.bejson.com/

JSON解析工具

  • Gson
  • fastjson
  • jackson

都是第三方工具,需要导入对应的jar包使用

fastjson导入

  1. 在项目下新建 lib 文件夹,将 fastjson 的 jar 包导入

  2. 点击idea右上角齿轮齿轮选择project structure

    导入jar包

Fastjson内容

JSON核心类

json核心类提供解析和转化方法,用于解析json数据格式,同时用于转换类对象到json格式,该类对象需要符合JavaBean规范

  • JSONArray

    提供按照键值对方式解析获取数据的方法,同时存在Listfangfa

  • JSONObject

    提供获取对应的类对象,指定键值对对应数据的方法

解析实例

package cn.ocean888.a_json;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.ArrayList;
import java.util.List;

/**
 * fastjson使用
 */
public class Demo1 
    public static void main(String[] args) 
        ArrayList<Student> list = new ArrayList<>();
        Student stu = new Student("oooo", 10);
        list.add(new Student("ocean", 28));
        list.add(new Student("ocean1", 18));
        list.add(new Student("ocean2", 19));

        /*
        JavaBean List ==> json String
         */
        String s = JSON.toJSONString(list);
        System.out.println(s);
        System.out.println("===============================");


        /*
        JavaBean Student类对象 ==> Json String
         */
        String s1 = JSON.toJSONString(stu);
        System.out.println(s1);

        /*
        Json String ==> Java Bean Student
         */
        Student student = JSON.parseObject(s1, Student.class);
        System.out.println(student);

        /*
        Json String ==> Json Object
         */
        JSONObject jsonObject = JSON.parseObject(s1);
        String name = jsonObject.getString("name");
        System.out.println(name);
        System.out.println(jsonObject.getInteger("age"));

        /*
        Json String ==> JsonArray
         */
        JSONArray objects = JSON.parseArray(s);
        System.out.println(objects);
        for (Object object : objects) 
            JSONObject jsonObject1 = (JSONObject) object;
            System.out.println(jsonObject1.getString("name"));
            System.out.println(jsonObject1.getInteger("age"));
        
        Student object = objects.getObject(2, Student.class);
        System.out.println(object);
        System.out.println("==============================");

        /*
        JSONArray ==> JavaBean List集合
         */
        List<Student> students = objects.toJavaList(Student.class);
        for (Student student1 : students) 
            System.out.println(student1);
        

        /*
        StudentManager ==> ArrayList ==> JSONString ==> 文件
        文件 ==> 程序 ==> JSONString ==> JSONArray ==> ArrayList
         */
    

输出:

gson源码解析(代码片段)

文章目录基础了解几个重要的概念1.属性赋值/序列化2.Java类型适配器3.JsonReader源码分析1.Gson初始化2.源码分析3.整体回顾ObjectToJson后记基础了解最近在解决一个Json解析时,把Gson原理过了一遍。Gson是Google开发的Json解析库,... 查看详情

gson源码解析(代码片段)

文章目录基础了解几个重要的概念1.属性赋值/序列化2.Java类型适配器3.JsonReader源码分析1.Gson初始化2.源码分析3.整体回顾ObjectToJson后记基础了解最近在解决一个Json解析时,把Gson原理过了一遍。Gson是Google开发的Json解析库,... 查看详情

转java解析多层json(代码片段)

java分别解析下面两个json字符串packagejansonDemo;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONArray;importcom.alibaba.fastjson.JSONObject;publicclassTestJSON/***JSON实际上也是键值对("key":"value")*key必 查看详情

java中创建解析json(代码片段)

java中创建解析json主要用的是google-gson这个第三方包将其导入到lib文件下随后在configbuildpath中将其导入随后便可以使用这个包创建测试文件test.json"a":[1:"cao",2:"kai"]随后在main函数中先创建json的解析器//创建解析器 ... 查看详情

java热点基础大盘点<深入解析arrarylist>(代码片段)

JAVA热点基础大盘点<深入解析ArraryList>(三)学习了java集合后,你是否一头雾水,不知道一些集合之间的区别和联系,也对如何去使用集合接口而感到困难,不用担心,沉默教你怎么学集合类文章... 查看详情

java热点基础大盘点<深入解析arrarylist>(代码片段)

JAVA热点基础大盘点<深入解析ArraryList>(三)学习了java集合后,你是否一头雾水,不知道一些集合之间的区别和联系,也对如何去使用集合接口而感到困难,不用担心,沉默教你怎么学集合类文章... 查看详情

java字符串用json来解析(代码片段)

JAVA字符串用解析json来解析一背景介绍在开发过程中,经常会遇到参数解析的情况。特别是对字符串进行解析,笔者在开发过程中也遇到过这种情况。特别是在查询后端数据对返回对象中。返回内容比较复杂。往往是数组... 查看详情

java字符串用json来解析(代码片段)

JAVA字符串用解析json来解析一背景介绍在开发过程中,经常会遇到参数解析的情况。特别是对字符串进行解析,笔者在开发过程中也遇到过这种情况。特别是在查询后端数据对返回对象中。返回内容比较复杂。往往是数组... 查看详情

java基础-xml解析(代码片段)

XMLXML概述ExendsibleMarkupLanguage(XML)可扩展标记语言用途:数据存储,小型数据库,存在一定CRUD操作可行性网络数据的传输JavaWEB项目配置文件基本语法XML文件后缀名为.xmlXML文件第一行是对于当前文件的定义声明XML文件中有且只有一个根... 查看详情

android解析json-gson使用(代码片段)

...安装依赖implementation'com.google.code.gson:gson:2.8.6'二、基础用法1、创建实体类Android前端需要创建一个实体类,与后端传递过来的jso 查看详情

超强解析环形队列,简析单项,双向队列及基础功能实现---风之java(代码片段)

队列环形队列超强解析环形队列(数组实现)构造方法判断队列是否满判断队列是否为空入队出队遍历环形队列单项队列数组实现单项队列链表实现单项队列双向对列链表实现双向队列环形队列超强解析环形队列(数组实现)publicclass... 查看详情

java基础语法万字解析java的string类(代码片段)

前言:在C语言中并没有字符串类型,而Java中却有着String。之前就介绍过Java的数据类型,但是String类型还有着很多的知识没有介绍到。今天这节就是深度解析一下Java中的字符串类型,让我们更加了解它,更容... 查看详情

异步请求(解析json数据)(代码片段)

将json数据显示到页面   需要借助js对dom的操作功能将数据生成到html页面Demo:查询一个雇员的信息html:1<%@pagelanguage="java"contentType="text/html;charset=UTF-8"2pageEncoding="UTF-8"%>3<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transit 查看详情

gson全解析(上)-gson基础

前言最近在研究Retrofit中使用的Gson的时候,发现对Gson的一些深层次的概念和使用比较模糊,所以这里做一个知识点的归纳整理。Gson(又称GoogleGson)是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符... 查看详情

java基础语法万字解析java的包和继承(代码片段)

文章目录一、包1.概念2.使用方式3.静态导入4.创建包5.包的访问权限6.常见的系统包二、继承1.概念2.语法规则(含super使用)3.protected关键字4.更复杂的继承关系5.final关键字三、组合四、总结(含谜底)一、包1.概念... 查看详情

json基础(代码片段)

JSON导读模块JSON语法规则json的定义json的访问json的两个常用方法JSON在java中的使用javaBean和json的互转List和json的互转map和json的互转导读模块发展史:21世纪初,DouglasCrockford寻找一种简便的数据交换格式,能够在服务器... 查看详情

sql解析嵌套json+数组(代码片段)

...#xff0c;数组中包含jsonjson嵌套数组,数组中嵌套复杂json基础信息:表名:table字段名:t_json普通json  "name":"a",  "title":"hh"sql:selectget_json_object(t_json,'$.name')asname,get_json_object(t_json,'$.tit... 查看详情

sql解析嵌套json+数组(代码片段)

...#xff0c;数组中包含jsonjson嵌套数组,数组中嵌套复杂json基础信息:表名:table字段名:t_json普通json  "name":"a",  "title":"hh"sql:selectget_json_object(t_json,'$.name')asname,get_json_object(t_json,'$.tit... 查看详情