3. 逻辑值(true 或 false)
4. 数组(在方括号中) {"persons":[{},{}]}
5. 对象(在花括号中) {"address":{"province":"陕西"....}}
6. null
* 数据由逗号分隔:多个键值对由逗号分隔
* 花括号保存对象:使用{}定义json 格式
* 方括号保存数组:[]
获取数据:
1. json对象.键名
2. json对象["键名"]
3. 数组对象[索引]
4. 遍历
JSON数据和Java对象的相互转换
*
JSON解析器
:
常见的解析器:Jsonlib,Gson,fastjson,jackson
四、解析方式
1. Gson
Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。
String json = new Gson().toJSON(要转换的对象);
Book book = new Gson().fromJson(json, Book.class);
public static void main (String[] args) {
Gson gson = new Gson ();
Student student = new Student ("张三" , 18 , "热爱学习!" );
String s = gson.toJson(student);
System.out.println(s);
public static void main (String[] args) {
String json = "{\"name\":\"李白\",\"age\":21,\"info\":\"伟大的诗人\"}" ;
Gson gson = new Gson ();
Student student = gson.fromJson(json, Student.class);
System.out.println(student);
2. FastJson
FastJson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。
String json=JSON.toJSONString(要转换的对象);
Book book = JSON.parseObject(json, Book.class);
public static void main (String[] args) {
Student student = new Student ("赵四" , 33 , "高效全能选手!" );
String s = JSON.toJSONString(student);
System.out.println(s);
public static void main (String[] args) {
String str = "{\"age\":33,\"info\":\"高效全能选手!\",\"name\":\"赵四\"}" ;
Student student = JSON.parseObject(str, Student.class);
System.out.println(student);
List<String> strings = JSON.parseArray("[\"一二三\",\"二三四\",\"三四五\"]" , String.class);
System.out.println(strings.get(1 ));
3. Jackson
Jackson是当前用的比较广泛的,用来序列化和反序列化 json 的 Java 的开源框架
writeValueAsString(obj):将对象转为json字符串
writeValue(参数1,obj)
File:将obj对象转换为JSON字符串,并保存到指定的文件中
Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流
readValue(str,类名.class):字符串转对象
1. @JsonIgnore:排除属性。
2. @JsonFormat:属性值得格式化
@JsonFormat(pattern = "yyyy-MM-dd")
1. 导入jackson的相关jar包(注意三个包)
jackson-core-2.2.3.jar:jackson的核心包
jackson-databind-2.2.3.jar:数据映射的包,即ObjectMapper就在这个包
jackson-annotations-2.2.3.jar:jsckson的注解包
2. 创建Jackson核心对象 ObjectMapper
3. 调用ObjectMapper的相关方法进行转换
public static void main (String[] args) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper ();
Student student = new Student ("老樊" , 24 , "优秀唱作人" );
String s = mapper.writeValueAsString(student);
System.out.println(s);
public static void main (String[] args) throws IOException {
ObjectMapper mapper = new ObjectMapper ();
String str = "{\"name\":\"老樊\",\"age\":24,\"info\":\"优秀唱作人\"}" ;
Student student = mapper.readValue(str, Student.class);
System.out.println(student);
复制代码 790
JavaScript
ECMAScript 6
355
Squids数据库云服务提供商
PostgreSQL
Hibernate
1.5w
CRPER
React.js
Node.js
Vue.js
10.0w
rianma
Node.js
Webpack
6937
sidiot
掘金·金石计划
Python
2415
sidiot
掘金·金石计划
Python
2032
Itfuture
IntelliJ IDEA