美文网首页
10分钟掌握JSON、XML、JSON解析

10分钟掌握JSON、XML、JSON解析

作者: 却忘不掉你心言 | 来源:发表于2018-07-01 13:47 被阅读0次

    1 JSON是什么?

    JSON是什么?百度百科是这么解释的。

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

    XML很好很强大,但是最近有另外一个时代弄潮儿,这就是JSON。现在JSON的光环已经逐渐超越了XML,各大网站提供的数据接口一般都是JSON。下面我们就来学习下JSON。

    2 JSON格式

    JSON构建于两种结构:

    “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组(associative array)。

    值的有序列表(An ordered list of values)。在大多数语言中,它被理解为数组(array)、矢量(vector), 列表(list)或者是序列(sequence)。

    JSON具有以下这些形式:

    对象是一个无序的“’名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。

    数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。

    值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。

    字符串(string)是由0到多个Unicode字符组成的序列,封装在双引号(”“)中, 可以使用反斜杠(‘\’)来进行转义。一个字符可以表示为一个单一字符的字符串。

    数字(number)类似C或者Java里面的数,没有用到的8进制和16进制数除外。

    3.如何解析JSON?

    Android JSON所有相关类,都在org.json包下。

    包括JSONObject、JSONArray、JSONStringer、JSONTokener、JSONWriter、JSONException。

    <1>. 常见方法

    目前JSON解析有2种方法,分别是get和opt方法,可以使用JSON

    那么使用get方法与使用opt方法的区别是?

    JsonObject方法,opt与get建议使用opt方法,因为get方法如果其内容为空会直接抛出异常。不过JsonArray.opt(index)会有越界问题需要特别注意。

    opt、optBoolean、optDouble、optInt、optLong、optString、optJSONArray、optJSONObject get、getBoolean、getDouble、getInt、getLong、getString、getJSONArray、getJSONObject

    三、 JSON vs. XML

    <1>. JSON相比XML的不同之处

    没有结束标签

    更短

    读写的速度更快

    能够使用内建的 JavaScript eval() 方法进行解析

    使用数组

    不使用保留字

    总之: JSON 比 XML 更小、更快,更易解析。

    XML:

    XML需要选择怎么处理element content的换行,而JSON string则不须作这个选择。

    XML只有文字,没有预设的数字格式,而JSON则有明确的number格式,这样在locale上也安全。

    XML映射数组没大问题,就是数组元素tag比较重复冗余。JSON 比较易读。

    JSON的true/false/null也能容易统一至一般编程语言的对应语义。

    XML文档可以附上DTD、Schema,还有一堆的诸如XPath之类规范,使用自定义XML元素或属性,能很方便地给数据附加各种约束条件和关联额外信息,从数据表达能力上看,XML强于Json,但是很多场景并不需要这么复杂的重量级的东西,轻便灵活的Json就显得很受欢迎了。

    打个比方,如果完成某件事有两种方式:一种简单的,一个复杂的。你选哪个?

    JSON与XML相比就是这样的。

    相关文章

      网友评论

          本文标题:10分钟掌握JSON、XML、JSON解析

          本文链接:https://www.haomeiwen.com/subject/zcicuftx.html