JSON学习小结

这篇博客总结了JSON作为轻量级数据交换格式的特性,包括JSON对象和JSON对象数组的结构,以及数据验证的重要性。还介绍了解析JSON的常用工具,如FastJson,并详细讲解了其核心类的功能和使用方法。
摘要由CSDN通过智能技术生成

1.概述

        Javascript Object Notation
        是一种轻量级的数据交换语言,该语言以易于让人阅读的文字为基础,用来传输由【属性值】或者【序列性的值】组成的【数据对象】。尽管【JSON】是【JavaScript】的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯

{
	"firstName":"Tom",
	"lastName":"Smith",
	"sex":"male",
	"age":23,
	"married":false,
	"address":
	{
		"streetAddress":" 21 2nd Street",
		"city":"NewYork",
		"state":"NY",
		"postalCode":"1001"
	},
	"phoneNumber":
	[
		{
			"type":"home",
			"number":"158 8888 8888"
		},
		{
			"type":"fax",
			"number":"158 6666 6666"
		}
	]
}

2. 数据格式

        JSON对象
        JSON对象数组

2.1 JSON对象

{
	"ID":001,
	"name":"大力",
	"age":24
}

特征:
        1.数据形式——键值对形式
        2.数据支持 字符串、数字、true false
        3.{ } 大括号以内的数据

2.2 JSON对象数组

[
	{
		"ID":1,
		"name":"张三",
		"age":20
	},
	{
		"ID":2,
		"name":"李四",
		"age":22
	},
	{
		"ID":3,
		"name":"王五",
		"age":25
	}
]

特征:
        1.数据使用 [ ] 包含
        2.在 [ ] 都是JSON格式对象
        3.每一个对象之间使用都好隔开,但最后一个元素不需要加逗号

2.3 JSON数据验证

JSON格式验证

3.解析JSON格式工具

常用的工具:
        Gson、fastjson、Jackson
        以上都是第三方工具,需要导入对应的jar包
        XML导包

3.1 FastJson内容

JSON核心类
        JSON核心类提供解析和转化方法,用于解析JSON数据格式,同时用于转换类对象到JSON格式,该类对象需要符合JavaBean规范
        - - | JSONArray
                存在按照【键值对方式】解析获取数据,同时存在一定的List方法
        - - | JSONObject
                获取对应的类对象【指定键值对】对应数据的方法

3.2解析演示

/*
完成一个符合JavaBean规范的类
*/
public class Student {
	private String name;
	private Integer age;
	//这里根据需要完成对应的Setter和getter方法
}
package *****;//包名

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import jdk.nashorn.internal.ir.CallNode;

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

/**
 * @author Anonymous
 * @description FastJson演示
 * @date 2020/3/9 16:34
 */
public class Demo1 {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();
        Student stu = new Student("张伟", 16);
        list.add(stu);
        list.add(new Student("大力", 26));
        list.add(new Student("海棠", 28));
        list.add(new Student("美嘉", 33));
        list.add(new Student("子乔", 35));

        /*
        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);
        }

        // StudentMangaer ==> ArrayList ==> JSONString ==> 文件
        // 文件 ==> 程序 ==> JSONString ==> JSONArray ==> ArrayList

        System.out.println("--------------------------------------");
    }
}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
JSONArray是JSON中的一个数据类型,表示一个由多个JSON对象组成的有序集合。通常用于表示一组数据,比如一组用户信息或一组商品信息等。 在Java中,我们可以使用org.json.JSONArray类来表示JSONArray对象。下面是一个示例代码,展示如何创建和操作JSONArray对象: ``` import org.json.JSONArray; import org.json.JSONObject; public class JSONArrayExample { public static void main(String[] args) { // 创建一个JSONArray对象 JSONArray jsonArray = new JSONArray(); // 向JSONArray中添加JSONObject JSONObject jsonObject1 = new JSONObject(); jsonObject1.put("name", "张三"); jsonObject1.put("age", 18); jsonArray.put(jsonObject1); JSONObject jsonObject2 = new JSONObject(); jsonObject2.put("name", "李四"); jsonObject2.put("age", 20); jsonArray.put(jsonObject2); // 输出JSONArray对象 System.out.println(jsonArray); // 获取JSONArray中的JSONObject JSONObject obj = jsonArray.getJSONObject(0); System.out.println(obj.getString("name") + " " + obj.getInt("age")); // 遍历JSONArray中的所有JSONObject for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); System.out.println(jsonObject.getString("name") + " " + jsonObject.getInt("age")); } } } ``` 在这个示例中,我们创建了一个JSONArray对象,并向其中添加了两个JSONObject对象。然后我们展示了如何获取JSONArray中的JSONObject,以及如何遍历JSONArray中的所有JSONObject。运行这个示例代码,输出结果如下: ``` [{"name":"张三","age":18},{"name":"李四","age":20}] 张三 18 张三 18 李四 20 ``` 从输出结果可以看出,我们成功地创建了一个JSONArray对象,并且成功地向其中添加了两个JSONObject对象。同时,我们也成功地获取了JSONArray中的JSONObject,以及遍历了JSONArray中的所有JSONObject。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值