在Java中如何解析JSON格式数据?

最近学了怎么解析JSON数据,今天记录一下。

先来一段介绍。

JSON是一种轻量级的数据交换格式,用途非常广泛。

JSON长什么样子

这就是json的样子

JSON由一个个键值对对组成,左边是键(key),中间是冒号(:),右边是值(value)。

Key为字符串类型,value可以是字符串,数字,数组,对象。

例如上例中 “名字”的value是字符串 “年龄”的value是数字 “爱好”的value是数组 “喜欢的游戏”的value是对象

可以看出,只需简单的几行字,就可以描述小明同学。更重要的事,机器也能轻易读懂这样的结构。

那么在Java中该如何解析JSON数据呢

JSON在JavaScript中解析非常方便,这是因为JSON就是来源于JavaScript,JSON语法是JavaScript对象表示法的子集。而在Java中,如果要解析,则需要使用第三方架包。有很多免费的架包供我们使用,今天小黄人主要介绍两种:org.json.jar, gson-2.2.4.jar

这两个架包直接百度包名就可以搜到。

org.json下载地址 http://www.docjar.com/jar_detail/json-org.jar.html gson下载地址 https://github.com/google/gson

org.json.jar

把JSON字符串直接转成JSONObject对象,利用该对象的getxxx方法就可以读出JSON中的数据。

还有很多方法,在实际使用过程中慢慢积累。

gson-2.2.4.jar

gson是谷歌的一个开源项目,gson的优势在于可以把json直接转成实体类,或者把实体类直接转成json,因为实体类是Java中必不可少的一部分,有利于结构化数据,所以这是一个非常实用的功能。

gson还有很多实用的功能,需要在以后的开发中逐渐学习。

上述例子中用到的json数据

上述例子中用到的实体类YoudaoResult.java

原文发布于微信公众号 - 小黄人打代码(MinionsCoding)

原文发表时间:2016-09-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术点滴

设计模式学习心得

设计模式学习心得 《设计模式:可复用面向对象软件的基础》一书以更贴近读者思维的角度描述了GOF的23个设计模式。按照书中介绍的每个设计模式的内容,结合网上搜集的...

2117
来自专栏ImportSource

设计模式-抽象类,只是想为你做更多

如果说面向对象中的接口是把所有的事情扔给你的话,那么抽象类显然是想要为你做一些事情,如果实在有一部分做不了再扔给你。 相信对于大部分业务开发的场景下都不太会需要...

3667
来自专栏工科狗和生物喵

【计算机本科补全计划】指令:计算机的语言(MIPS) Part3

正文之前 今天学的很尴尬,因为有事情,而且新认识了两个计算机学院的保研大佬,不得不感叹我找的导师之强,第一个去上交的,是被金老师推荐去的,听说是跟了目前亚洲第一...

3288
来自专栏Golang语言社区

十条有用的 Golang语言 技术

十条有用的 Go 技术 这里是我过去几年中编写的大量 Go 代码的经验总结而来的自己的最佳实践。我相信它们具有弹性的。这里的弹性是指: 某个应用需要适配一个灵...

3776
来自专栏大闲人柴毛毛

柴毛毛大话设计模式——开发常用的设计模式梳理

写在最前 本文是笔者的一点经验总结,主要介绍几种在Web开发中使用频率较高的设计模式。 本文篇幅较长,建议各位同学挑选感兴趣的设计模式阅读。 在阅读的同时,也...

4907
来自专栏数据小魔方

多条件排序

今天跟大家分享多条件排序的技巧! 之前分享过关于excel中的排序菜单及所有的排序函数,但是这些菜单和函数的排序功能仅限于单列排序,无法完成多列的多条件排序功...

2806
来自专栏C语言及其他语言

【编程经验】C语言程序真正的启动函数(文末有福利,第二弹)

又到了小编和大家说到的时间了,闲话少说,直接上正题,今天就讲讲“C语言程序真正的启动函数”。 为什么要用”真正”这个词?因为我们从...

33012
来自专栏牛客网

爱奇艺远程一面

1060
来自专栏Vamei实验室

Python标准库02 时间与日期 (time, datetime包)

Python具有良好的时间和日期管理功能。实际上,计算机只会维护一个挂钟时间(wall clock time),这个时间是从某个固定时间起点到现在的时间间隔。时...

2456
来自专栏Golang语言社区

十条有用的 Golang语言 技术

十条有用的 Go 技术 这里是我过去几年中编写的大量 Go 代码的经验总结而来的自己的最佳实践。我相信它们具有弹性的。这里的弹性是指: 某个应用需要适配一个灵...

4179

扫码关注云+社区

领取腾讯云代金券