JSON解析

一、简介


JSON,全称:JavaScript Object Notation,是一种常见的轻量级的数据交换格式,在一个程序员的开发生涯中是常接触的。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

Java是面向对象的语言,所以我们更多的在项目中是以对象的形式处理业务的,但是在传输的时候我们却要将对象转换为 JSON 格式便于传输,而且 JSON 格式一般能解析为大多数的对象格式,而不在乎编程语言。

Json与XML的比较:体积小,节省流量,只是不如XML直观,可读性稍微差一点

二、对象格式

class Book{ 
    private String name; 
    private String info;
    get/set... 
}
Book b = new Book(); 
b.setName(“金苹果”); 
b.setInfo(“种苹果”);
......
//js
var b = new Object(); 
b.name = "金苹果"; 
b.info = "种苹果";
//xml
<book>
    <name>金苹果</name> 
    <info>种苹果</info> 
</book>
//JSON
{ 
    "name":"金苹果", 
    "info":"种苹果" 
}

一个对象, 由一个大括号表示。 括号中描述对象的属性。通过键值对来描述对象的属性 (可以理解为, 大括号中 包含的是一个个的键值对
格式:

键与值之间使用冒号连接, 多个键值对之间使用逗号分隔.
键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错,而JS能正确解析)
键值对的值, 可以是JS中的任意类型的数据
注意:在JSON格式中可以与对象互相嵌套 [元素1,元素2…]
例如:
 

{ 
    "name":"伟杰老师", 
    "age":18, 
    "pengyou":["张三","李四","王二","麻子",{ 
        "name":"野马老师", 
        "info":"像匹野马一样狂奔在技术钻研的道路上" 
    }], 
    "hobby":{ 
        "name":"学习", 
        "length":"40" 
    } 
}

三、json解析
3.1 Gson

Gson 是谷歌开发支持的,这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象。

1、将对象转换为JSON字符串
引入JAR包

在需要转换JSON字符串的位置编写如下代码即可:

String json = new Gson().toJSON(要转换的对象);

Book b = BookDao.find(); 
String json = new Gson().toJson(b); 
System.out.println(json);

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

  1. 引入JAR包

  2. 在需要转换Java对象的位置, 编写如下代码:

    对象 = new Gson().fromJson(JSON字符串,对象类型.class);

String json = "{\"id\":\"1002\",\"info\":\"小学生必备。\",\"name\":\"唐诗三百首\"}"; 
Book book = new Gson().fromJson(json, Book.class); 
System.out.println(book);

 

3.2 FastJson
fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。

1、将对象转换为JSON字符串
引入JAR包

在需要转换JSON字符串的位置编写如下代码即可:

String json=JSON.toJSONString(要转换的对象);
 

Book b = BookDao.find(); 
String json=JSON.toJSONString(b); 
System.out.println(json);

2、将JSON字符串转换为对象
引入JAR包

在需要转换Java对象的位置, 编写如下代码:

类型 对象名=JSON.parseObject(JSON字符串, 类型.class);

​ 或

List<类型> list=JSON.parseArray(JSON字符串,类型.class);
 

String json = "{\"id\":\"1002\",\"info\":\"小学生必备。\",\"name\":\"唐诗三百首\"}"; 
Book book = JSON.parseObject(json, Book.class);
System.out.println(book);

idea实际应用

1、创建存储jar的单独目录,将所需要的jar包均复制在该目录下

2、新添加的jar包无法直接使用,需要进行一些配置
file----->Project Structure----->library------>modules

添加好library后点击modules,点击添加配置好的jar包

验证配置效果,当jar包可以展开时说明配置成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

H_IT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值