xml转json工具类(安卓json编辑器教程)

一、引言

现如今 Restful API 越来越流行,而 JSON 和 XML 基本上是两种主流格式用来交换数据,JSON和 XML 都在 Web上有完善的开放标准(RFC 7159,RFC 4825),本文将带着大家来了解下这个两种数据格式。

xml转json工具类(安卓json编辑器教程)-1

二、JSON1、JSON 简介

JSON 是一种用于在多个应用程序之间共享数据的通信格式。JSON代表 JavaScript Object Notation。它基本上是键值对的集合。

官网:http://www.json.org/

在线校验JSON结构的网站:https://jsonformatter.curiousconcept.com/

2、JSON 数据结构

JSON 有两种数据结构:

  • Map,也称为对象;{….}
  • Array;[……]

也就是说所有的 JSON 对象都是要以这些形式表示;

2.1、Map

简单的说就是 Java 中的 Map,名称-值对的形式给出,名称和值之间用 “:” 隔开,两个Map之间用“,”隔开,一般表示形式如下:

{'key1':'value1','key2':'value2'} 

下面的 Object 有 3 个键值对

{ "firstName" : "Vijay", "lastName" : "Gupta", "gender" : "Male" } 

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

xml转json工具类(安卓json编辑器教程)-1

2.2、 Array

就是普通意义上的数组,一般形式如下:

['arr1','arr2','arr3']; 

下面的数组有 3 个JSON 对象,每个对象有 3 个键值对

[ {"name" : "Potato","stock" : "10", "unit" : "kg"}, {"name" : "Tomato","stock" : "32", "unit" : "kg"}, {"name" : "Onion","stock" : "27", "unit" : "kg"} ] 

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

xml转json工具类(安卓json编辑器教程)-1

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

xml转json工具类(安卓json编辑器教程)-1

字符串(string)是由双引号包围的任意数量 Unicode 字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。

字符串(string)与C或者Java的字符串非常相似。

xml转json工具类(安卓json编辑器教程)-1

数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。

xml转json工具类(安卓json编辑器教程)-1

2.3、嵌套Map

JSON对象也可以嵌套:

{ "id": "0001", "type": "donut", "name": "Cake", "image": { "url": "images/0001.jpg", "width": 200, "height": 200}, "thumbnail": {"url": "images/thumbnails/0001.jpg", "width": 32, "height": 32} } 

2.4、小结

  • JSON 的数据结构只有两种
  • 可以嵌套表示,比如 Array 中可以嵌套 Object 等
  • Object 是以{}表示,Array是以 [ ] 表示

三、XML1、XML简介

XML 是一种标记语言,也是一种用于在多个应用程序之间共享数据的通信格式,而不是 HTML,它更侧重于数据表示。

xml转json工具类(安卓json编辑器教程)-1

XML 被设计用来描述数据并关注数据是什么

xml转json工具类(安卓json编辑器教程)-1

XML 标签不需要预先定义。在 XML 中,标签和文档结构由其作者定义。通常,XML标签是自解释的,并描述它们之间的内容。

xml转json工具类(安卓json编辑器教程)-1

例如:

<section>  <title>BOOK</title>  <signing>   <author name="author-1"/>   <book title="book1" price="$11"/>  </signing>  <signing>   <author name="author-2"/>   <book title="book2" price="$22"/>  </signing> </section> 

1.1、XML语法规则

  • 必须包含一个根元素,它是所有其他元素的父元素
  • 所有 XML 元素都必须具有结束标记
  • XML 标签区分大小写
  • XML 元素必须正确嵌套
  • 必须引用 XML 属性值

在线校验XML结构的网站:https://codebeautify.org/xmlvalidator

1.2、XML中的实体引用

某些字符不能用作 XML 标记内的内容。因此,我们用特定文本(称为实体引用)替换这些字符,以便从字面上解析这些字符

在 XML 中有 5 个预定义的实体引用:

xml转json工具类(安卓json编辑器教程)-1

四、JSON与XML互转示例

在线格式互转: http://www.utilities-online.info/xmltojson/#.XFE-pegzaUk

1、简单XML

XML格式:

<person>  <name>zuozewei</name>  <age>20</age> </person> 

JSON格式:

{  "name":"zuozewei",  "age":20 } 

2、复杂XML

XML格式:

<section>  <title>BOOK</title>  <signing>   <author name="author-1"/>   <book title="book1" price="$11"/>  </signing>  <signing>   <author name="author-2"/>   <book title="book2" price="$22"/>  </signing> </section> 

JSON格式:

{   "section": {     "title": "BOOK",     "signing": [       {         "author": { "-name": "author-1" },         "book": {           "-title": "book1",           "-price": "$11"         }       },       {         "author": { "-name": "author-2" },         "book": {           "-title": "book2",           "-price": "$22"         }       }     ]   } } 

五、XML VS JSON

xml转json工具类(安卓json编辑器教程)-1

六、总结

XML是一种数据格式,同时它也是一种语言。它具有许多强大的功能,使其不仅仅是简单的数据交换数据格式。例如 XPath,属性和命名空间,XML 模式和 XSLT 等。所有这些功能都是 XML 流行的主要原因。

JSON 并不是为了拥有这样的功能而设计的,即使它们中的一些现在正试图在 JSON 中找到它们的位置,例如 JSONPath。

简而言之,XML 的目的是文档标记。每当文档标记和元数据是数据的重要组成部分并且不能被删除时,总是更喜欢使用 XML。

JSON 的目的是结构化数据交换。它通过直接表示对象,数组,数字,字符串和布尔值来实现此目的。如果不要求元数据和文档标记,始终使用 JSON。

秒鲨号所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈!本站将在三个工作日内改正。
(0)

大家都在看

  • 经济适用房和商品房的区别(经济适用房有什么弊端)

    经济适用房,这种类型的房屋在市场上也是有名声,相信听说过它的购房者也不少,因为购买经济适用房可以享受国家优惠政策,所以对于许多收入较低的购房者来说是不错的选择。从价格上而言,经济适…

    2022年4月8日
  • 微信语音合成软件哪个好用(配音软件排行榜)

    如果你也想成为一名自媒体博主,如果你不想真人配音但是又需要在视频里面又需要加声音,那该怎么办呢?【九锤配音】可以实现一秒文字转语音,方便快捷不用等待。 几百位AI主播可供选择,成熟…

    2022年1月16日 投稿
  • win7c盘清理最有效方法(win7c盘清理最有效方法)

    因为电脑大部分文件保存,都是默认保存在C盘,所以这就导致很多电脑小白,把文件都放在了C盘。时间一长,电脑C盘就会"飘红"显示内存不足,这该怎么办呢?不要着急,今…

    2022年5月29日 投稿
  • 绝地求生进不去怎么办(绝地求生登录不进)

    吃鸡游戏一直在国内受瞩目,很多人喜欢体验,就像现实战斗一样,所以最近玩家甚至增加更快,PUBG免费绝地求生进不去/连不上/登不上/打不开游戏,也是可能因为最近PUBG绝地求生即将免…

    2022年6月6日 投稿
  • 朋友圈广告文案(朋友圈产品推广文案)

    1永远简单又真诚。 2有希望之处定有磨练。 3保持可爱,不谈恋爱。 4外界的声音都是参考。 5孤独是人间生活常态。 6目之所及,万千欢喜。 7山南水北,人潮似海。 8所有的美好都在…

    2022年5月29日 投稿
  • JJ游戏金商卖币谁靠谱 启源女神休闲乐趣无处不在

    目前市场上很多手机游戏都花费了玩家的时间,把游戏和玩家的时间捆绑起来。限时登录领取福利,组队朋友刷副本,缺席任务等于落后,这让很多玩家感到身心疲惫。越来越忙碌的工作和生活占据了玩家的大部分时间,就像上班一样在网上打卡,让玩家很难获得纯粹的游戏快乐。休闲对于现在的手机游戏来说是非常重要的。

    2022年7月4日 投稿
  • 中国月收入1万有多少人(中国月薪一万的人占百分之几)

    众所周知,中国是全球人口第一大国,拥有14.1亿人。不过,在这14.1亿人口当中,在扣除老人和孩子,以及无劳动能力的人之外,真正有劳动能力的人大约是7.5亿人口。现在问题来了,在这…

    2022年6月29日 投稿
  • 6寸照片的尺寸是多少(详解6寸照片比例大小)

    6寸照片指的是一张照片对角线的长度,其尺寸大小是15.2cm×10.2cm。 照片的尺寸是以英寸为单位,1英寸=2.54cm,通常X寸是指照片长的一边的英寸长度。如5寸照片的长为2…

    2022年8月28日
  • 邮政快递怎么样(邮政快递的优缺点)

    我看到平时大学的录取通知书都是用邮政快递,从来没有想过邮政快递也有这么差劲的时候。10月24号用邮政快递发了一份文件,收件地址是本市,正常是第二天就到了,我查物流的时候也确实第二天…

    2022年6月12日
  • 紫背鱼腥草(鱼腥草煮水)

    小时候常去河边玩,而在河边除了有柳树,还有一些株型比较小的杂草,比如龙葵、车前草、苘麻、香肠草等植物就有很多了,这些植物都比较喜欢水分,特别是香肠草,它会在水里面生长,看着很特别。…

    2022年5月29日 投稿
品牌推广 在线咨询
返回顶部