JSON解析基础使用知识

JSON格式

假设我们定义一本书
一本书有他的书名和内容,那么JSON数据如下

{"name":"诗经","info":"中国古代诗歌开端,最早的一部诗歌总集"
}
  • 一个对象由一个大括号表示,括号中通过键值对的方式来描述对象的属性。
  • 键值之间使用冒号连接、多个键值对之间使用逗号分隔,
  • 键值对的键应使用引号包含(如果不使用引号,Java解析时通常会报错,但JS不会)
  • 键值对的值可以是JS中任意类型数据

Gson

Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。

1、先创建一个类

构造方法、toString()、get()、set()等省略,免得太长

public class Book {//基本信息private String id;private String name;private String info;
}

2、将类转换为JSON格式

public class Demo1 {public static void main(String[] args) {//1. 创建一个Gson对象Gson g = new Gson();//2. 创建一个Book对象Book b = new Book("99","诗经","中国古代诗歌开端");//3. 通过toJson方法转换String s = g.toJson(b);//4. 输出验证System.out.println(s);Book b1 = new Book("100","聊斋","蒲松龄创作的文言短篇小说集");String s1 = new Gson().toJson(b1);System.out.println(s1);}
}

输出得到结果

3、将JSON格式转换为Book对象

public class Demo3 {public static void main(String[] args) {//1. 创建Gson对象Gson g = new Gson();//2. 通过fromJson方法将目标JSON格式字符串转换为Book对象Book b = g.fromJson("{\"id\":\"99\",\"name\":\"诗经\",\"info\":\"中国古代诗歌开端\"}",Book.class);Book b1 = g.fromJson("{\"id\":\"100\",\"name\":\"聊斋\",\"info\":\"蒲松龄创作的文言短篇小说集\"}",Book.class);//3. 输出诗经id,聊斋名字验证System.out.println(b.getId());System.out.println(b1.getName());}
}

输出得到结果

4、将JSON转换为Map

public class Demo2 {public static void main(String[] args) {//1.    创建Gson对象Gson g = new Gson();//2.    转换  :  {"id":"100","name":"诗经","info":"中国古代诗歌开端","page":["如月之恒","如日之升"]}//以HashMap为对象HashMap data = g.fromJson("{\"id\":\"100\",\"name\":\"诗经\",\"info\":\"中国古代诗歌开端\",\"page\":[\"如月之恒\",\"如日之升\"]}", HashMap.class);//3. 用list集合接收pageList page = (List) data.get("page");//4. 输出验证System.out.println(page.get(1));}
}

输出的结果

FastJson

还是使用上面创建的Book对象

1、将类转换为JSON格式

public class Demo2 {public static void main(String[] args) {Book book = new Book("98","兰亭集序","流觞曲水,列坐其次");//1. 导入com.alibaba.fastjson.JSON后转换直接使用其中的toJSONString方法String s = JSON.toJSONString(book);//2. 输出验证System.out.println(s);}
}

输出得到结果

2、将JSON格式转换为Book对象

public class Demo2 {public static void main(String[] args) {//通过parseObject方法直接转换成BookBook book = JSON.parseObject("{\"id\":\"98\",\"info\":\"流觞曲水,列坐其次\",\"name\":\"兰亭集序\"}",Book.class);System.out.println(book.getId());}
}

输出结果验证

3、将JSON转换为数组

public class Demo4 {public static void main(String[] args) {//1. 转换数组:["流觞曲水","列坐其次","兰亭集序"]List<String> strings = JSON.parseArray("[\"流觞曲水\",\"列坐其次\",\"兰亭集序\"]", String.class);System.out.println(strings.get(0));}
}

输出验证

谢谢你的观看

JSON解析基础使用知识-Java相关推荐

  1. 视频教程-JSON入门基础视频课程-Java

    JSON入门基础视频课程 Java讲师,多年培训经验,曾参与开发过的项目:某省电信ODS系统.电信自助取数系统.CRM客户关系管理系统.环境应急信息系统.自来水客服系统等.熟练掌握J2EE平台开发技能 ...

  2. java+解析未知json_在Java中解析JSON时如何忽略未知属性– Jackson @JsonIgnoreProperties注释示例...

    java+解析未知json 使用Jackson API在Java中解析JSON时的常见问题之一是,当您的JSON包含未知属性(即您的Java类没有对应于所有JSON属性的所有字段)时,该操作将失败. ...

  3. java 自定义json解析注解 复杂json解析 工具类

    java 自定义json解析注解 复杂json解析 工具类 目录 java 自定义json解析注解 复杂json解析 工具类 1.背景 2.需求-各式各样的json 一.一星难度json[json对象 ...

  4. Json解析完全解析

    json解析算得上是Android开发中的家常便饭了,绝大部分的应用或多或少都会用到json解析,当然可能他们用的是Gson解析.其实Gson解析用起来确实比Json方便,但是不管怎样,熟练使用Jso ...

  5. Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO

    Java基础知识第二讲(Java编程规范/JVM/集合框架/异常体系/Java反射/语法知识/Java IO/码出高效) 分享在java学习及工作中,常使用的一些基础知识,本文从JVM出发,讲解了JV ...

  6. Java基础语法知识你真的都会吗?

    第一阶段 JAVA基础知识 第二章 Java基础语法知识 在我们开始讲解程序之前,命名规范是我们不得不提的一个话题,虽说命名本应该是自由的,但是仍然有一定的"潜规则",通过你对命名 ...

  7. json 解析 转java对象数组对象数组对象_json字符串转java对象数组

    需要引入json-lib-2.2-jdk15.jar和ezmorph-1.0.6.jar包 String itemStar = request.getParameter("itemStar& ...

  8. java json parser_自己实现JSON解析器 JsonParser

    自己实现json parser,只有一个类,不依赖任何第三方工具. 背景 为什么要实现json解析器呢?在我实现一个rpc框架的过程中,注册中心部分使用consul,而consul的api是通过res ...

  9. Java七十四: Java基础/核心知识总结 — — “Java千字文”

    Java基础/核心知识总结 - - "Java千字文" Java基础/核心知识笔记终于完结,从Java语言诞生到jdk8新特性,共计74篇博文,43幅自制插图,35张表格,7万6千 ...

最新文章

  1. NetDevOps — SNMP 协议
  2. boost::math::chebyshev_transform用法的测试程序
  3. idea下org.apache.commons.dbcp.BasicDataSourc找不到
  4. JavaWeb-SpringBoot(抖音)_二、服务器间通讯
  5. linux下mysql案例_Linux下安装MySQL多实例
  6. 关于几本模拟IC设计书
  7. datareader对象转化为int_【Angew. Chem. Int. Ed.】光催化丙二烯的去消旋反应
  8. 模型相关:SolidWorks创建Cube模型,在3DMax中给不同面添加不同颜色,导出自带纹理的FBX至Unity
  9. javascript的constructor属性介绍
  10. oracle中日期格式的注意事项
  11. 如何解决未能初始化战场服务器,microsoft net framework配置系统未能初始化
  12. 12个优秀的开源UML工具
  13. Sniffer的使用
  14. SpringBoot整合极光推送
  15. 华为服务器的系统,华为服务器系统
  16. 终端类型 xterm linux,Linux的终端类型
  17. dij最短路+堆优化
  18. 异构平台运维工作文档
  19. Linux系统文件服务
  20. sql 上一行减下一行_买大米时,不管什么牌子,只要包装袋上没这一行字,别买~...

热门文章

  1. 记一次replace into引发的死锁问题
  2. http://www.blogjava.net/beansoft/archive/2007/03/09/102812.html
  3. 互联网日报 | 新浪同意被私有化;吉利汽车科创板首发过会;滴滴货运日单量持续破10万...
  4. 如何用计算机放音乐,教你如何用iPhone远程遥控电脑播放音乐教程
  5. Java开发人员必须掌握的Linux命令(二)
  6. SDOI 2018二轮题解(除Day2T1)
  7. 《搜索》— NYOJ 42—一笔画问题
  8. C语言实现两个多项式加法与乘法
  9. 基于TIA博途的一阶滞后滤波+中位值滤波+堆栈平均值滤波算法SCL语言程序(封装FB库)
  10. Linux系统查看FC HBA卡信息的方法