Java基础-JSON解析
Posted Ocean:)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础-JSON解析相关的知识,希望对你有一定的参考价值。
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导入
-
在项目下新建 lib 文件夹,将 fastjson 的 jar 包导入
-
点击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
*/
}
}
输出:
以上是关于Java基础-JSON解析的主要内容,如果未能解决你的问题,请参考以下文章