一、JSON是什么
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于 ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。(来自百度百科的解释)
通俗的理解就是:JSON是存储和交换文本信息的语法,类似 XML。且JSON比XML更小、更快、更易解析。
二、JSON的语法规则
1、数据在名称/值对中:json数据是由键值对构成的
键用引号(单双都行)引起来,也可以不使用引号;
值可以是合法的JSON数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。
2、数据由逗号分隔:多个键值对由逗号分隔
3、大括号保存对象:使用{}定义json 格式
4、中括号保存数组:使用[]保存多个json对象
三、使用JSON存储数据
(一)一般形式的json格式,如Demo1:
1 | var person = {name:"zhangsan", age:20, gender:true} |
(二)嵌套格式一,如Demo2:
1 | var persons1 = { |
(三)嵌套格式二,如Demo3:
1 | var persons2 = [ |
四、获取JSON数据
(一)一般格式(如Demo1)
1 | // 获取某一条数据 |
(二)嵌套格式一(如Demo2)
1 | // 获取某一条数据 |
(三)嵌套格式二(如Demo3)
1 | // 获取某一条数据 |
五、Java对象转换成JSON对象
(一)使用步骤
要在Java对象和JSON对象间进行转换,就必须要使用JSON解析器了。
常见的解析器有:Jsonlib,Gson,fastjson,jackson
此文中的Demo使用的是jackson
假设有如下JavaBean对象:(省略了setter和getter方法)
1 | public class Person { |
那么如何在项目中将其对象转换为JSON对象呢?
步骤如下:
1、导入jar包
2、创建JackSon核心对象:ObjectMapper
3、调用相关方法进行转换
1 | //使用频率较高的方法有: |
(二)JavaBean对象转换
1 | Person person = new Person(); |
1 | ObjectMapper objectMapper = new ObjectMapper(); |
(三)集合对象转换
1、List对象
1 | Person person1 = new Person(); |
2、Map对象
1 | Map<String, Object> map = new HashMap<String, Object>(); |
(四)使用注解
有时候对于一个Bean对象中的属性,可能不希望它存进json数据,或者该属性的类型需要格式化。
那么以下两个注解就派上用场了:
1、@JsonIgnore:排除属性。
2、@JsonFormat:属性值得格式化
只需要在对应的属性或者setter、getter方法使用该注解即可,如:
1 | public class Person { |
六、JSON对象转换为Java对象
(一)使用步骤
由JSON对象转换为Java对象貌似用得不多,所以见到了解即可
步骤和Java对象转换成JSON对象是一样的:
1、导入jar包
2、创建JackSon核心对象:ObjectMapper
3、调用相关方法进行转换:readValue(json字符串数据,Bean对象.class)
(二)Demo
1 | String json = "{\"name\":\"张三\",\"age\":30,\"gender\":\"man\"}"; |
1 | ObjectMapper objectMapper = new ObjectMapper(); |
本文只是总结了一些较常用的方法,更详细的使用还请参考教程:JSON教程
Java新手,若有错误,欢迎指正!