您好,欢迎访问一九零五行业门户网

JavaScript处理解析JSON数据过程详解_javascript技巧

json (javascript object notation)一种简单的数据格式,比xml更轻巧。 json 是 javascript 原生格式,这意味着在 javascript 中处理 json 数据不需要任何特殊的 api 或工具包。
json的规则很简单: 对象是一个无序的“‘名称/值'对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值' 对”之间使用“,”(逗号)分隔。具体细节参考http://www.json.org/json-zh.html
举个简单的例子:
js 代码
function showjson() { var user = { username:andy, age:20, info: { tel: 123456, cellphone: 98765}, address: [ {city:beijing,postcode:222333}, {city:newyork,postcode:555666} ] } alert(user.username); alert(user.age); alert(user.info.cellphone); alert(user.address[0].city); alert(user.address[0].postcode); }
这表示一个user对象,拥有username, age, info, address 等属性。
同样也可以用json来简单的修改数据,修改上面的例子
js 代码
function showjson() { var user = { username:andy, age:20, info: { tel: 123456, cellphone: 98765}, address: [ {city:beijing,postcode:222333}, {city:newyork,postcode:555666} ] } alert(user.username); alert(user.age); alert(user.info.cellphone); alert(user.address[0].city); alert(user.address[0].postcode); user.username = tom; alert(user.username); }
json提供了json.js包,下载http://www.json.org/json.js 后,将其引入然后就可以简单的使用object.tojsonstring()转换成json数据。
js 代码
function showcar() { var carr = new car(dodge, coronet r/t, 1968, yellow); alert(carr.tojsonstring()); } function car(make, model, year, color) { this.make = make; this.model = model; this.year = year; this.color = color; }
可以使用eval来转换json字符到object
js 代码
function myeval() { var str = '{ name: violet, occupation: character }'; var obj = eval('(' + str + ')'); alert(obj.tojsonstring()); }
或者使用parsejson()方法
js 代码
function myeval() { var str = '{ name: violet, occupation: character }'; var obj = str.parsejson(); alert(obj.tojsonstring()); }
下面使用prototype写一个json的ajax例子。
先写一个servlet (我的是servlet.ajax.jsontest1.java)就写一句话
java 代码
response.getwriter().print({ \name\: \violet\, \occupation\: \character\ });
再在页面中写一个ajax的请求
js 代码
function sendrequest() { var url = /mywebapp/jsontest1; var mailajax = new ajax.request( url, { method: 'get', oncomplete: jsonresponse } ); } function jsonresponse(originalrequest) { alert(originalrequest.responsetext); var myobj = originalrequest.responsetext.parsejson(); alert(myobj.name); }
prototype-1.5.1.js中提供了json的方法,string.evaljson(), 可以不使用json.js, 修改上面的方法
js 代码
function jsonresponse(originalrequest) { alert(originalrequest.responsetext); var myobj = originalrequest.responsetext.evaljson(true); alert(myobj.name); }
json还提供了java的jar包 http://www.json.org/java/index.html api也很简单,下面举个例子
在javascript中填加请求参数
js 代码
function sendrequest() { var carr = new car(dodge, coronet r/t, 1968, yellow); var pars = car= + carr.tojsonstring(); var url = /mywebapp/jsontest1; var mailajax = new ajax.request( url, { method: 'get', parameters: pars, oncomplete: jsonresponse } ); }
使用json请求字符串就可以简单的生成jsonobject并进行解析,修改servlet添加json的处理(要使用json.jar)
java 代码
private void doservice(httpservletrequest request, httpservletresponse response) throws ioexception { string s3 = request.getparameter(car); try { jsonobject jsonobj = new jsonobject(s3); system.out.println(jsonobj.getstring(model)); system.out.println(jsonobj.getint(year)); } catch (jsonexception e) { e.printstacktrace(); } response.getwriter().print({ \name\: \violet\, \occupation\: \character\ }); }
同样可以使用jsonobject生成json字符串,修改servlet
java 代码
private void doservice(httpservletrequest request, httpservletresponse response) throws ioexception { string s3 = request.getparameter(car); try { jsonobject jsonobj = new jsonobject(s3); system.out.println(jsonobj.getstring(model)); system.out.println(jsonobj.getint(year)); } catch (jsonexception e) { e.printstacktrace(); } jsonobject resultjson = new jsonobject(); try { resultjson.append(name, violet) .append(occupation, developer) .append(age, new integer(22)); system.out.println(resultjson.tostring()); } catch (jsonexception e) { e.printstacktrace(); } response.getwriter().print(resultjson.tostring()); } js 代码 function jsonresponse(originalrequest) { alert(originalrequest.responsetext); var myobj = originalrequest.responsetext.evaljson(true); alert(myobj.name); alert(myobj.age); }
以上内容就是给大家介绍javascrip处理t解析json数据过程详解,希望对大家有所帮助。
其它类似信息

推荐信息