文章目录
一、JSON是什么?
JSON是JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式.
二、JSON相对于其他语言的编码格式
一、JSON的对象格式
- 一个对象, 由一个大括号表示
- 括号中通过键值对来描述对象的属性,键值对的键应使用 “” 引号引住
- 键与值之间使用冒号连接, 多个键值对之间使用逗号分隔
- 键值对的值, 可以是JS中的任意类型的数据
1.java
代码如下:
class Book{
private String name;
private String info;
get/set...
}
Book b = new Book();
b.setName("大苹果");
b.setInfo("吃苹果");
2.js
代码如下:
var b = new Object();
b.name = "大苹果";
b.info = "吃苹果";
3.XML
代码如下:
<book>
<name>大苹果</name>
<info>吃苹果</info>
</book>
4.JSON
代码如下:
{
"name":"大苹果",
"info":"吃苹果"
}
二、JSON的数组格式
在JSON格式中可以与对象互相嵌套
[元素1,元素2…]
代码如下:
{
"name":"张三",
"age":20,
"friend":["二狗","李四","王二","麻子",{
"name":"小贾",
"info":"像匹野马一样狂奔在技术钻研的道路上"
}],
"heihei":{
"name":"大长刀",
"length":"40m"
}
}
三、JSON的两种转换方法(Gson,FastJson)
使用的两个库链接(百度网盘):https://pan.baidu.com/s/1yR1C_HXCRj9JunDsipHftg
提取码:k3m7
1.使用Gson
- 将对象转换为JSON字符串
- 引入JAR包
- 在需要转换JSON字符串的位置编写如下代码即可:
String json = new Gson().toJSON(要转换的对象);
案例
代码如下:
class Book{
private String id;
private String name;
private String info;
get/set...
}
public static void main(String[] args) {
//创建Gson对象
Gson g = new Gson();
//转换
Book book = new Book("100", "银苹果", "苹果腐烂的故事");
String s = g.toJson(book);
System.out.println(s);
运行结果
{"id":"100","name":"银苹果","info":"苹果腐烂的故事"}
- 将JSON字符串转换为对象
- 引入JAR包
- 在需要转换Java对象的位置, 编写如下代码:
对象 = new Gson().fromJson(JSON字符串,对象类型.class);
案例
代码如下:
public static void main(String[] args) {
//创建Gson对象
Gson g = new Gson();
//转换 {"id":"100","name":"银苹果","info":"苹果腐烂的故事"}
Book book = g.fromJson("{\"id\":\"100\",\"name\":\"银苹果\",\"info\":\"苹果腐烂的故事\"}", Book.class);
System.out.println(book);
}
运行结果
Book{id='100', name='银苹果', info='苹果腐烂的故事'}
2.使用FastJson
- 将对象转换为JSON字符串
- 引入JAR包
- 在需要转换JSON字符串的位置编写如下代码即可:
String json=JSON.toJSONString(要转换的对象);
案例
代码如下:
public static void main(String[] args) {
Book b = new Book("1002","一二三四五","上山打老虎");
String s = JSON.toJSONString(b);
System.out.println(s);
}
运行结果
{"id":"1002","info":"上山打老虎","name":"一二三四五"}
- 将JSON字符串转换为对象
- 引入JAR包
- 在需要转换Java对象的位置, 编写如下代码:
类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
或
List<类型> list=JSON.parseArray(JSON字符串,类型.class);
案例
代码如下:
public static void main(String[] args) {
//转换:{"id":"1002","info":"上山打老虎","name":"一二三四五"}
Book book = JSON.parseObject("{\"id\":\"1002\",\"info\":\"上山打老虎\",\"name\":\"一二三四五\"}", Book.class);
System.out.println(book);
}
运行结果
Book{id='1002', name='一二三四五', info='上山打老虎'}
四、总结
以上就是java与Json互转对象与字符串
刚刚开始写文章,大家多多支持!!!!