JSON解析

这篇博客介绍了JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,其基本对象格式包括键值对和嵌套结构。文章详细阐述了JSON在Java中的应用,包括如何使用Gson和FastJson库将Java对象转换为JSON字符串,以及如何将JSON字符串反序列化回Java对象。此外,还展示了具体的代码示例来说明这两个过程。
摘要由CSDN通过智能技术生成

一:简介:JSON:  全称JavaScript  object  Notation   ,JS对象简谱,是一种轻量级  数据交换格式 

二:对象格式:

1.一个对象, 由一个大括号表示。括号中 描述对象的属性通过键值对来描述对象的属性

(可以理解为, 大括号中, 包含的是一个个的键值对.)

2.格式:

键与值之间使用冒号连接, 多个键值对之间使用逗号分隔。

键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错. 而JS能正确解析.)

键值对的值, 可以是JS中的任意类型的数据

示例:

{
     "name":"clk",
     "age":"20",
     "sex":"man"
}

3.在JSON格式中可以与对象相互嵌套:

例子:

{
      "name":"clk",
      "age":"20",
      "subject":["Java","OS","COA",{
                       "Cname":"高等数学",
                       "info":"比数学更高等的数学"
               }],
      "hobby":["看小说","听音乐","学java"]
}

三:Java与JSON:

java中的对象可以快速转换为JSON格式的字符串。

JSON格式的字符串可以转换为java的对象。

1.Gson:

(1)将对象转换为JSON字符串:

步骤:

(i)引入JAR包

(ii)在需要转换JSON字符串的位置编写如下代码:

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

例子:

Book b = new Book();
b.setName="金苹果";
b.setInfo="苹果种植很辛苦";
String json = new Gson().toJson(b);
System.out.println(json);

(2)将JSON字符串转换为对象

(i)引入JAR包

(ii)在需要转换java对象的位置,编写如下代码:

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

例子:

String json = "{\"name\":\"clk\",\"subject\":[\"java\",\"os\",\"coa\"],\"sex\":\"man\"}";
Student stu = new Gson().fromJson(json,Student.class);
System.out.println(book);

2.FastJson

(1)将对象转换为JSON字符串

步骤:

(i)引入JAR包

(ii)在需要转换JSON字符串的位置编写如下代码:

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

例子:

Book book = new Book();
book.setName = "金苹果";
book.setInfo = "苹果种植很辛苦";
String json = JSON.toJSONString(book);
System.out.println(json);

(2)将JSON字符串转换为对象

步骤:

(i)引入JAR包

(ii)在需要转换JSON字符串的位置编写如下代码:

//类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
//List<类型> list=JSON.parseArray(JSON字符串,类型.class);

例子:

List<String> strings = JSON.parseArray("[\"一二三\",\"二三四\",\"三四五\"]",String.class);
System.out.println(strings.get(1));//输出二三四


Book b = new Book("唐诗三百首","1001");
String json = JSON.toJSONString(b);
System.out.println(json);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值