JSON即JavaScript Object Notation(JavaScript对象表示法),现在常被作为不同程序之间通信的语言。算是机器之间交流的语法规则的一种,对于程序员来讲掌握JSON的解析变得非常重要,这将有助于我们和程序之间的沟通。
一个简单的JSON案例如下:
1 | json复制代码{ |
下面介绍三种常用的解析方法:
1 Gson
)
- 将对象转换为JSON字符串
- 引入JAR包
- 在需要转换JSON字符串的位置编写如下代码即可:
1 | java复制代码String json = new Gson().toJSON(要转换的对象); |
- 将JSON字符串转换为对象
- 引入JAR包
- 在需要转换Java对象的位置, 编写如下代码
1 | java复制代码对象 = new Gson().fromJson(JSON字符串,对象类型.class); |
案例Demo:
1 | java复制代码public class Demo1 { |
)
1 | java复制代码public static void main(String[] args) { |
)
2 FastJson
)
- 将对象转换为JSON字符串
转换JSON字符串的步骤:
- 引入JAR包
- 在需要转换JSON字符串的位置编写如下代码即可
- 将JSON字符串转换为对象
- 引入JAR包
- 在需要转换Java对象的位置, 编写如下代码:
1 | java复制代码类型 对象名=JSON.parseObject(JSON字符串, 类型.class); |
或
1 | java复制代码List<类型> list=JSON.parseArray(JSON字符串,类型.class); |
案例Demo:
1 | java复制代码public static void main(String[] args) { |
)
1 | java复制代码public static void main(String[] args) { |
)
3 Jackson
- 将JSON字符串转换为对象
步骤:
- 导入jackson的相关jar包
)
- 创建Jackson核心对象 ObjectMapper
- 调用ObjectMapper的相关方法进行转换
1 | java复制代码readValue(json字符串数据,Class) |
1 | java复制代码@Test |
- Java对象转换JSON
- 导入jackson的相关jar包
- 创建Jackson核心对象 ObjectMapper
- 调用ObjectMapper的相关方法进行转换
1 | java复制代码writeValue(参数1,obj): |
参数1:
File:将obj对象转换为JSON字符串,并保存到指定的文件中
Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
1 | java复制代码writeValueAsString(obj):将对象转为json字符串 |
1 | java复制代码Person p = new Person(); |
案例:校验用户名是否存在
服务器响应的数据,在客户端使用时,要想当做json数据格式使用。有两种解决方案:
- $.get(type):将最后一个参数type指定为”json”
- 在服务器端设置MIME类型
1 | java复制代码response.setContentType("application/json;charset=utf-8"); |
前端界面:
1 | html复制代码<!DOCTYPE html> |
相应的servlet:
1 | java复制代码@WebServlet("/findUserServlet") |
\
本文转载自: 掘金