JSON用法

来源:互联网 发布:网络剧发行许可证 编辑:程序博客网 时间:2024/06/07 02:07
一、  JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时,也易于机器解析和生成。  
二、JSON数据格式解析:  和XML一样,JSON也是基于存文本的数据格式。您可以用JSON传输一个简单的String、Number、Boolean,也可以传输一个数组或者一个复杂的Object对象。 

例如:  

1、用JSON表示一个简单String “abc”,其格式为:”abc”。除了字符“,\,/ 和一些控制符(\b,\n,\t等)需要编码外,其他Unicode字符可以直接输出。  

2、用JSON表示一个数组对象,使用“[ ]“包含所有元素,每个元素用逗号分隔,元素可以使任意的value,
例如,一下数组包含了一个String、Number、Boolean、和一个null: [“abc”,123,false,null]。  
3、Object对象在JSON中用“{ }“包含一系列无序的Key-Value键值对表示,实际上此处的Object相当于Java中的Map。注意Key只能用String表示。
例如:一个Address对象包含如下Key-Value:{“city”:”beijing”,”street”:”chaoyang”,”postcode”:100025}。 
三、JAVASCRIPT处理JSON数据 Function demo(){  var v={“name”:”SMITH”,”address”: {“city”:”beijing”,”street”:”chaoyang”,”postcode”:100025}}; document.write(v.name); document.write(v.address.city); } 
四:JSON和XML的比较  XML和JSON都是用结构化方法来标记数据,下面来做一个简单的比较。 <?xml version=”1.0” encoding=”utf-8”?> <country>  <name>中国</name> <province>  <name>黑龙江</name> <citys>  <city>哈尔滨</city> <city>大庆</city> </citys> </province> </country>   
用JSON表示如下: {  name:”中国”, province:[ {  Name:”黑龙江”,citys:{“哈尔滨”,”大庆”} } ] } 

XML比JSON更有可读性。不过,我们读起来费解的语言,恰恰是适合机器阅读的。编写的手写难度来说,XML还是舒服一些,好读当然就好写。不过写出来的字符JSON就明显少很多。去掉空白制表以及换行的话,JSON就是有用数据,而XML却包含很多重复的标记字符。 

五、下面列举两个对象:JSONArray和JSONObject  在写有关于JSON的程序时首先要加入六个JAR包:commons-beanutils-1.7.0.jar、commons-collections.jar、commons-lang-2.2.jar、ezmorph-1.0.4.jar、json-lib-2.1-jdk15.jar、xom-1.1d2.jar   

(1)JSONArray   

例子:    List list = new ArrayList();   list.add("a");   list.add("b");    JSONArray jso = JSONArray.fromObject(list);   System.out.println(list);   输出的结果是:[“a”,”b”] 。   

(2)JSONObject  

 例子:    Map map = new HashMap();     map.put( "int", new Integer(1) );      map.put( "arr", new String[]{"a","b"} );       map.put( "func", "function(i){ return this.arr; }" );      JSONObject json = JSONObject.fromObject( map );      System.out.println( json );       输出的结果是:{"arr":["a","b"],"int":1,"func":function(i){ return this.arr; }}  

(3)JSONObject to XML  

 例子:    JSONObject json = JSONObject.fromObject("{\"name\":\"json\",\"bool\":true,\"int\":1}");      XMLSerializer xmlSerializer = new XMLSerializer();      String xml = xmlSerializer.write(json);    System.out.println(xml);     

XML to JSONObject  

 例子:    String  xmls  = "<?xml  version='1.0'  encoding='UTF-8'?><o><int type='number'>1</int>"  +  "<name  type='string'>json</name></o>";      XMLSerializer xmlSerializer = new XMLSerializer();       JSON json = xmlSerializer.read(xmls); System.out.println( json.toString(2) );  

原创粉丝点击