当前位置: 首页 > 工具软件 > XML to JSON > 使用案例 >

JSON|XML

巫马嘉祯
2023-12-01

一、什么事JSON

(1)JSON(Java Script Object Notation(记号,标记))是一种轻量级的数据交换语言,

        以文本字符串为基础,且易于让人阅读

        注意:XML就是一个重量级的数据交换语言

   (2)JSON采用完全独立于任何程序语言的文本格式,使JSON成为理想的数据交换语言

二、JSON的作用 

(1)简化创建自定义对象的方式     

  • JSON就是用JS语法来书写,所以必须放在<script>标签中
  • 在用JS语法书写JSON时,最外面不要用""双引号

(2)在AJAX中,作为数据载体之一

  • JS可以直接解析JSON格式的文本,前提是:该JSON必须采用JS格式书写的才行,如果该JSON是采用Java格式写的,必须使用eval()函数转换后,方可被JS解析,该eval("")函数接收一个字符串格式的内容。
var p = {
			id:1,
			name:"哈哈",
			tel:[
					{
						no:"135",
						type:"中移动"
					},
					{
						no:"133",
						type:"中联通"
					}
				],
			show:function(username){
				alert("你的姓名是:" + p.name+":"+username);
			},
			isSingle:false			
		};
var p = {'city':['北京','上海','广州','深圳']};
for(var i=0;i<p.city.length;i++){
	document.write(p.city[i]+"<br/>");
}

三、使用第三方工具,将JavaBean对象/List或Set或Map对象转成JSON 

准备导入第三方jar包:

fastjson-1.2.2.jar   

JavaBean----->JSON字符串

String jsonJAVA = JSONObject.toJSONString(s);

四、总结JSON的特点

  • 在客户端(特指PC浏览器),直接使用JavaScript语言解析JSON,无需第三方jar包
  • 本质上,就是一个文本,只是该文本有特定的书写格式
  • 可以使用第三方工具,将JavaBean对象或者List/Set/Map<JavaBean>对象转成JSON
  • 优点:JSON与XML很相似,但是它更加轻巧,服务器只需发送一个html普通字符串,不用发送复杂的xml格式文档了
  • 缺点:语法过于严谨,初学者可能觉得代码不易读,写错一点都不行
  • JSON本质上,就是用JS语法写的特殊文本记号,用JS可以直接解析

五、JSON 与 JS 对象的关系

JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。

var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的
var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串


//要实现从JSON字符串转换为JS对象,使用 JSON.parse() 方法:
var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}

//要实现从JS对象转换为JSON字符串,使用 JSON.stringify() 方法:
var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}'

JSON 与 XML对比

可读性

  • JSON 是简易语法
  • XML是规范的标签形式

XML的编码工具:Dom4J、Dom、SAX

XML解析方式:

  • 通过文档模型解析,也就是通过父标签索引出一组标记。但是这样是要在预先知道文档结构的情况下使用,无法进行通用的封装。
  • 遍历节点(document 以及 childNodes)。这个可以通过递归来实现,不过解析出来的数据仍旧是形式各异,往往也不能满足预先的要求。
<--用XML表示中国部分省市数据如下:-->
<?xml version="1.0" encoding="utf-8"?>
<country>
    <name>中国</name>
    <province>
        <name>黑龙江</name>
        <cities>
            <city>哈尔滨</city>
            <city>大庆</city>
        </cities>
    </province>
    <province>
        <name>广东</name>
        <cities>
            <city>广州</city>
            <city>深圳</city>
            <city>珠海</city>
        </cities>
    </province>
    <province>
        <name>台湾</name>
        <cities>
            <city>台北</city>
            <city>高雄</city>
        </cities>
    </province>
    <province>
        <name>新疆</name>
        <cities>
            <city>乌鲁木齐</city>
        </cities>
    </province>
</country>
//用JSON表示
{
    "name": "中国",
    "province": [{
        "name": "黑龙江",
        "cities": {
            "city": ["哈尔滨", "大庆"]
        }
    }, {
        "name": "广东",
        "cities": {
            "city": ["广州", "深圳", "珠海"]
        }
    }, {
        "name": "台湾",
        "cities": {
            "city": ["台北", "高雄"]
        }
    }, {
        "name": "新疆",
        "cities": {
            "city": ["乌鲁木齐"]
        }
    }]
}

 类似资料: