JSON简介以及JAVA API ,轨道图

最近做个数据采集的东西,初步决定使用JSON作为数据交换格式,OK,学习整理一下。

JSON(JavaScript Object Notation),轻量级的数据交换格式,易于阅读和编写,同时机器也很容易输出JSON格式、解析JSON格式。JSON是完全独立于语言的文本格式,这使其成为理想的数据交换语言。

JSON中两类基本结构:

  • key:value:键-值对,通过key来标识值;
  • array:有序的数组;

JSON利用上述的两类基本结构,实现了集中基本数据类型:

对象:对象是一组无序的名称/值对。对象以 {(左大括号)开头,以 } 结尾(右大括号)。每个名称后跟 :(冒号),名称/值对由 (逗号) 分隔。(无序的key-value对,以开头,以结尾,其内部以逗号分隔),{},

数组:数组是值的有序集合。数组以(左括号)开头,以(右括号)结尾。值由 (逗号) 分隔。(有序的value序列,以开头,以结尾,其内部以逗号分隔)[][],

:值可以是双引号中的字符串,也可以是数字,可以是 true、false 或 null,也可以是对象或数组。这些结构可以嵌套。(Value表示的内容比较广,既可以是""包含起来的String,也可以是数字,或者'falseObject'或者array)true;另一方面,也可以是

字符串:字符串是一个由零个或多个 Unicode 字符组成的序列,用双引号括起来,使用反斜杠转义。字符表示为单个字符字符串。字符串非常类似于 C 或 Java 字符串。(双引号包含起来的Unicode 字符,其中可以使用来标识转义字符)""backslash

数字:数字非常类似于 C 或 Java 数字,只是不使用八进制和十六进制格式。(不支持八进制和十六进制格式)

可以在任何一对标记之间插入空格。除了一些编码细节外,这完全描述了语言。(任何符号之间都可插入空格)whitespace

notes(ningg):JSON中能否重复?key

处理JSON格式数据,无非两条路:

  • JDK 自带的 Java API;(官方)
  • 第三方jar包提供的java API;

特别说明JSR 353指出,今后的Java SE 6以及Java EE 7中要添加API来支持JSON格式数据的解析和转换。当前个人查证,在JDK6u30中没有java API来解析JSON;Java EE 7中,已经提供了包来支持解析JSON。javax.json

当前项目需求,在JDK5以及之上的版本都能进行JSON字符串与JSON对象之间的转换,OK,那直接上第三方jar包得了。

JSON 主页可知,当前,有很多的第三方jar包:org.json、org.json.me、jsonp、 Jackson JsonProcessorgoogle-gson、Json-lib...,有点多呀,到底选哪个呢?当前初步考虑在如下两个中选:

  • Spring中使用的是org.codehaus.jackson详细版本号(后来Spring 3.2中已经支持Jackson2了)1.9.13
  • google-gson的官方网站打不开,不过在maven中央仓库找到了gson的jar包,虽然无法查看官网的文档,不过maven中央仓库的javadoc、source文件也可以用来学习。

最终决定采用gson,其基本的JSON操作,参考:JSON转换利器:Gson

处理JSON的Java API :JSON的简介中提到解析JSON的API分为两类:

  • 对象模型API
  • 流API

这两种方式在原理、效率上都有差异,TODO

posted @ 2021-12-11 22:10  CharyGao  阅读(32)  评论(0)    收藏  举报