要使用json需要到www.json.org官网去下载json所需要的js(javascript)和jar(java)
json
JSON(javascript OBject Notation)
是一种轻量级数据交换格式。易于阅读和编写,同时也易于机器的解释和生成。
它基于javascript(Standard ECMA-262 3rd Edition - December 1999)的一个子集.
JSON采用完全独立于语言的文本格式,但也使用了类似于c语言家族的习惯,(包括C,C++,C#,JAVA,javascript,perl,Rython艾 )。
这些使JSON成为理想的数据交换语言。
JSON有两种结构:
1. “名称/值”对的集合(A collection of name/value pairs)
2.值的有序列表(An ordered list of values)在大部分语言中,它被理解为数组(array)。
json的形式
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
对象用{} 而 数组用[] 每个元素之间用 ','隔开。
JSON优点:
JSON 不但能够提高可读性,而且可以减少复杂性。
JSON对象和JSON字符串之间的相互转换是关键
JSON字符串:
var str1 = '{ "name": "cxh", "sex": "man" }';
JSON对象:
var str2 = { "name": "cxh", "sex": "man" };
一、JSON字符串转换为JSON对象
要使用上面的str1,必须使用下面的方法先转化为JSON对象:
//由JSON字符串转换为JSON对象来源:考试大
var obj = eval('(' + str + ')');
或者
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
或者
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
然后,就可以这样读取:
Alert(obj.name);
Alert(obj.sex);
特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。
实例代码:
function jsonal()
{
var json='{"A":"a","b":"b"}';
alert(json);
var obj=eval('('+json+')');
alert(obj.A);
var oj=json.parseJSON();
alert(oj.A);
var sj=JSON.parse(json);
alert(sj.A);
}
JSON和XML的比较
◆可读性
JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负。
◆可扩展性
XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。不过JSON在Javascript主场作战,可以存储Javascript复合对象,有着xml不可比拟的优势。
◆编码难度
XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有提供的工具。无工具的情况下,相信熟练的开发人员一样能很快的写出想要的xml文档和JSON字符串,不过,xml文档要多很多结构上的字符。
◆解码难度
XML的解析方式有两种:
一是通过文档模型解析,也就是通过父标签索引出一组标记。例如:xmlData.getElementsByTagName("tagName"),但是这样是要在预先知道文档结构的情况下使用,无法进行通用的封装。
另外一种方法是遍历节点(document 以及 childNodes)。这个可以通过递归来实现,不过解析出来的数据仍旧是形式各异,往往也不能满足预先的要求。
凡是这样可扩展的结构数据解析起来一定都很困难。
JSON也同样如此。如果预先知道JSON结构的情况下,使用JSON进行数据传递简直是太美妙了,可以写出很实用美观可读性强的代码。如果你是纯粹的前台开发人员,一定会非常喜欢JSON。但是如果你是一个应用开发人员,就不是那么喜欢了,毕竟xml才是真正的结构化标记语言,用于进行数据传递。
而如果不知道JSON的结构而去解析JSON的话,那简直是噩梦。费时费力不说,代码也会变得冗余拖沓,得到的结果也不尽人意。但是这样也不影响众多前台开发人员选择JSON。因为json.js中的toJSONString()就可以看到JSON的字符串结构。
当然不是使用这个字符串,这样仍旧是噩梦。常用JSON的人看到这个字符串之后,就对JSON的结构很明了了,就更容易的操作JSON。
以上是在Javascript中仅对于数据传递的xml与JSON的解析。在Javascript地盘内,JSON毕竟是主场作战,其优势当然要远远优越于xml。如果JSON中存储Javascript复合对象,而且不知道其结构的话,我相信很多程序员也一样是哭着解析JSON的。
JAVA语言的一个例子
String json="{'name':'tanli','age':'18'}";
JSONObject obj=JSONObject.fromObject(json);
System.out.println(obj.getString("name"));
System.out.println(obj.getString("age"));
String son="['ta','d','d']";
JSONArray array=JSONArray.fromObject(son);
System.out.println(array.get(0));
System.out.println(array.get(1));
对于json的学习(java javascript)
最新推荐文章于 2022-12-09 17:02:49 发布