jsonserializer java_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 = "<?xml version='1.0' encoding='UTF-8'?>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页面:

其内容如下:

function demo(){

new Ajax.Updater("content","test.do");

}

获取数据

正在获取内容...

然后创建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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值