JSONObject JSONSerializer JSONArray java中的使用

一、
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都是用结构化方法来标记数据,下面来做一个简单的比较。


中国

黑龙江

哈尔滨
大庆




用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 = "1" + "json"; 
  XMLSerializer xmlSerializer = new XMLSerializer();  
  JSON json = xmlSerializer.read(xmls); System.out.println( json.toString(2) ); 

六、下面列举AJAX和JSON的例子
  1、环境struts、hibernate、JSON、AJAX
  2、首先,加载struts和hibernate框架,然后再把JSON的JAR包放到lib下。
创建一个Action:
  Action的内容如下:

  PrintWriter out = response.getWriter();
  JSONObject obj = new JSONObject();
  JSONArray js = new JSONArray();
  //这里的数据封装是从数据库查询来的  
  MesDao md = new MesDao();
  List list = md.findMess();
  for(int i=0;i   JSONObject objtemp = new JSONObject();
  TMessage tm = (TMessage) list.get(i);
  objtemp.put("id", tm.getId());
  objtemp.put("name", tm.getName());
  js.add(objtemp);
  }
  obj.put("js",js);
  out.print(obj.toString());
  然后,创建一个JSP页面:
  其内容如下:
 
 
 
获取数据


  正在获取内容...

然后创建toolpro.js
toolpro.js的内容如下:
function getcomplex(){
var url = 'test.do';
  var ajax = new Ajax.Request(url,
  {method:'post',Complete:showcomplex});  
}
function showcomplex(dataResponse)
  {
var data = eval('(' + dataResponse.responseText + ')');
var str='';
for(var i=0;i {
str+='
    ';
    str+='
  • '+data.js.id+'
  • ';
    str+='
  • '+data.js.name+'
  • ';
    str+='
';
}
document.getElementById("content").innerHTML=str;
}

你可能感兴趣的:(EXT)