JSON的使用与解析

1.1 JSON的简介

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。简单来说:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互。

1.2 JSON的格式

1.2.1 基本语法规则

一、数组(Array)用方括号(“[]”)表示。
二、对象(0bject)用大括号(“{}”)表示。
三、名称/值对(name/value)组合成数组和对象。
四、名称(name)置于双引号中,值(value)有字符串、数值、布尔值、null、对象和数组。
五、并列的数据之间用逗号(“,”)分隔
{

1.2.2 对象格式简介

案例

一个学生
姓名
个人介绍
java方法:
   class Student{
     private String name;
     private String info;
     get/set...    //此处忽略部分代码
   }
   Student b = new Student();
   b.setName(“阿衰”);
   b.setInfo(“逗逼”);
   ...
js方法:
   var b = new Object();
   b.name = "阿衰";
   b.info = "逗逼";
   
 XML方法:
 <Student>
 <name>金苹果</name>
 <info>种苹果</info>
 </Student>
 JSON方法:
 {
 "name":"阿衰",
 "info":"逗逼"
 }
一个对象, 由一个大括号表示.
   括号中 描述对象的属性 . 通过键值对来描述对象的属性
   (可以理解为, 大括号中, 包含的是一个个的键值对.)
   格式:
键与值之间使用冒号连接, 多个键值对之间使用逗号分隔.
键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错. 而JS能正确解
析.)
键值对的值, 可以是JS中的任意类型的数据

1.2.2 数组格式简介

在JSON格式中可以与对象互相嵌套
[元素1,元素2…]

案例

      {  "name":"阿衰",
        "age":20,
        "pengyou":["张三","李四","王二","麻子",{
              "name":"野马老师",
              "info":"像匹野马一样狂奔在技术钻研的道路上"
           }],
        "heihei":{
          "name":"大长刀",
          "length":"40m"
       }
     }

2.JAVA与JSON格式互相转换(重点)

  • 将Java中的对象 快速的转换为 JSON格式的字符串.
  • 将JSON格式的字符串, 转换为Java的对象

2.1 方法

方法我一般常用的有两种

1.GSON

GSON是Google开发的Java API

2.FastJson

Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。

2.2 如何使用这两个方法

2.2.1 GSON的使用

1. 引入jar包

GSON jar包的下载地址

2. 使用

使用分两种
一种是将对象转换为JSON字符串
另一种是将JSON字符串转换为对象

一、将对象转换为JSON字符串

在需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJSON(要转换的对象);

案例

Student stu = new Student("张三",18,"女");//这里我学生那部分代码我就忽略了
        Gson g = new Gson();
        String s =g.toJson(stu);
        System.out.println(s);

二、 将JSON字符串转换为对象

在需要转换Java对象的位置, 编写如下代码:
对象 = new Gson().fromJson(JSON字符串,对象类型.class);

案例

 String json = "{\"id\":1,\"name\":\"金苹果\",\"author\":\"林俊杰
\",\"info\":\"嘿嘿嘿嘿嘿嘿\",\"price\":198.0}";
  Book book = new Gson().fromJson(json, Book.class);
  System.out.println(book);

2.2.2 FastJson的使用

1. 引入jar包

FastJson jar包的下载教程

2. 使用

使用分两种
一种是将对象转换为JSON字符串
另一种是将JSON字符串转换为对象

一、将对象转换为JSON字符串

在需要转换JSON字符串的位置编写如下代码即可:
String json=JSON.toJSONString(要转换的对象);

案例

 Student stu = new Student("张三",18,"女");//这里我学生那部分代码我就忽略了
        String s = JSON.toJSONString(stu);
        System.out.println(s);

二、 将JSON字符串转换为对象

 在需要转换Java对象的位置, 编写如下代码:
 在需要转换Java对象的位置, 编写如下代码:
 类型 
 对象名 = JSON.parseObject(JSON字符串, 类型.class);
 或
  List<类型> list=JSON.parseArray(JSON字符串,类型.class);//数组类型

案例

 String json = "{\"id\":1,\"name\":\"金苹果\",\"author\":\"林俊杰
   \",\"info\":\"嘿嘿嘿嘿嘿嘿\",\"price\":198.0}";
  Book book = JSON.parseObject(json, Book.class);
  System.out.println(book);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值