JavaScript解析Json
2014-01-17 16:56
309 查看
JSON(JavaScriptObject
Notation)一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。
JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。具体细节参考http://www.json.org/json-zh.html
举个简单的例子:
js 代码
functionshowJSON() {
varuser =
{
"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 代码
functionshowJSON() {
varuser =
{
"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 代码
functionshowCar() {
varcarr =newCar("Dodge","Coronet R/T", 1968,"yellow");
alert(carr.toJSONString());
}
functionCar(make, model, year, color) {
this.make = make;
this.model = model;
this.year = year;
this.color = color;
}
可以使用eval来转换JSON字符到Object
js 代码
functionmyEval() {
varstr = '{"name":"Violet","occupation":"character"}';
varbj = eval('(' + str + ')');
alert(obj.toJSONString());
}
或者使用parseJSON()方法
js 代码
functionmyEval() {
varstr = '{"name":"Violet","occupation":"character"}';
varbj = str.parseJSON();
alert(obj.toJSONString());
}
下面使用prototype写一个JSON的ajax例子。
先写一个servlet (我的是servlet.ajax.JSONTest1.java)就写一句话
java代码
response.getWriter().print("{ \"name\": \"Violet\", \"occupation\": \"character\" }");
再在页面中写一个ajax的请求
js 代码
functionsendRequest() {
varurl ="/MyWebApp/JSONTest1";
varmailAjax =newAjax.Request(
url,
{
method: 'get',
onComplete:jsonResponse
}
);
}
functionjsonResponse(originalRequest) {
alert(originalRequest.responseText);
varmyobj = originalRequest.responseText.parseJSON();
alert(myobj.name);
}
prototype-1.5.1.js中提供了JSON的方法,String.evalJSON(),可以不使用json.js,
修改上面的方法
js 代码
functionjsonResponse(originalRequest) {
alert(originalRequest.responseText);
varmyobj = originalRequest.responseText.evalJSON(true);
alert(myobj.name);
}
JSON还提供了java的jar包 http://www.json.org/java/index.html API也很简单,下面举个例子
在javascript中填加请求参数
js 代码
functionsendRequest() {
varcarr =newCar("Dodge","Coronet R/T", 1968,"yellow");
varpars ="car="+ carr.toJSONString();
varurl ="/MyWebApp/JSONTest1";
varmailAjax =newAjax.Request(
url,
{
method: 'get',
parameters: pars,
onComplete:jsonResponse
}
);
}
使用JSON请求字符串就可以简单的生成JSONObject并进行解析,修改servlet添加JSON的处理(要使用json.jar)
java代码
privatevoiddoService(HttpServletRequest request, HttpServletResponse response)throwsIOException {
String s3 = request.getParameter("car");
try{
JSONObjectjsonObj =newJSONObject(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代码
privatevoiddoService(HttpServletRequest request, HttpServletResponse response)throwsIOException {
String s3 = request.getParameter("car");
try{
JSONObjectjsonObj =newJSONObject(s3);
System.out.println(jsonObj.getString("model"));
System.out.println(jsonObj.getInt("year"));
}catch(JSONException e) {
e.printStackTrace();
}
JSONObject resultJSON=newJSONObject();
try{
resultJSON.append("name","Violet")
.append("occupation","developer")
.append("age",newInteger(22));
System.out.println(resultJSON.toString());
}catch(JSONException e) {
e.printStackTrace();
}
response.getWriter().print(resultJSON.toString());
}
js 代码
functionjsonResponse(originalRequest) {
alert(originalRequest.responseText);
varmyobj = originalRequest.responseText.evalJSON(true);
alert(myobj.name);
alert(myobj.age);
}
Notation)一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。
JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。具体细节参考http://www.json.org/json-zh.html
举个简单的例子:
js 代码
functionshowJSON() {
varuser =
{
"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 代码
functionshowJSON() {
varuser =
{
"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 代码
functionshowCar() {
varcarr =newCar("Dodge","Coronet R/T", 1968,"yellow");
alert(carr.toJSONString());
}
functionCar(make, model, year, color) {
this.make = make;
this.model = model;
this.year = year;
this.color = color;
}
可以使用eval来转换JSON字符到Object
js 代码
functionmyEval() {
varstr = '{"name":"Violet","occupation":"character"}';
varbj = eval('(' + str + ')');
alert(obj.toJSONString());
}
或者使用parseJSON()方法
js 代码
functionmyEval() {
varstr = '{"name":"Violet","occupation":"character"}';
varbj = str.parseJSON();
alert(obj.toJSONString());
}
下面使用prototype写一个JSON的ajax例子。
先写一个servlet (我的是servlet.ajax.JSONTest1.java)就写一句话
java代码
response.getWriter().print("{ \"name\": \"Violet\", \"occupation\": \"character\" }");
再在页面中写一个ajax的请求
js 代码
functionsendRequest() {
varurl ="/MyWebApp/JSONTest1";
varmailAjax =newAjax.Request(
url,
{
method: 'get',
onComplete:jsonResponse
}
);
}
functionjsonResponse(originalRequest) {
alert(originalRequest.responseText);
varmyobj = originalRequest.responseText.parseJSON();
alert(myobj.name);
}
prototype-1.5.1.js中提供了JSON的方法,String.evalJSON(),可以不使用json.js,
修改上面的方法
js 代码
functionjsonResponse(originalRequest) {
alert(originalRequest.responseText);
varmyobj = originalRequest.responseText.evalJSON(true);
alert(myobj.name);
}
JSON还提供了java的jar包 http://www.json.org/java/index.html API也很简单,下面举个例子
在javascript中填加请求参数
js 代码
functionsendRequest() {
varcarr =newCar("Dodge","Coronet R/T", 1968,"yellow");
varpars ="car="+ carr.toJSONString();
varurl ="/MyWebApp/JSONTest1";
varmailAjax =newAjax.Request(
url,
{
method: 'get',
parameters: pars,
onComplete:jsonResponse
}
);
}
使用JSON请求字符串就可以简单的生成JSONObject并进行解析,修改servlet添加JSON的处理(要使用json.jar)
java代码
privatevoiddoService(HttpServletRequest request, HttpServletResponse response)throwsIOException {
String s3 = request.getParameter("car");
try{
JSONObjectjsonObj =newJSONObject(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代码
privatevoiddoService(HttpServletRequest request, HttpServletResponse response)throwsIOException {
String s3 = request.getParameter("car");
try{
JSONObjectjsonObj =newJSONObject(s3);
System.out.println(jsonObj.getString("model"));
System.out.println(jsonObj.getInt("year"));
}catch(JSONException e) {
e.printStackTrace();
}
JSONObject resultJSON=newJSONObject();
try{
resultJSON.append("name","Violet")
.append("occupation","developer")
.append("age",newInteger(22));
System.out.println(resultJSON.toString());
}catch(JSONException e) {
e.printStackTrace();
}
response.getWriter().print(resultJSON.toString());
}
js 代码
functionjsonResponse(originalRequest) {
alert(originalRequest.responseText);
varmyobj = originalRequest.responseText.evalJSON(true);
alert(myobj.name);
alert(myobj.age);
}
相关文章推荐
- javascript解析json数据的3种方式
- JavaScript如何处理解析JSON数据详解
- javascript解析xml和json等
- javascript 解析ajax返回的xml和json格式的数据
- JavaScript 解析 JSON 数据
- javascript解析json
- JavaScript - 解析JSON
- javascript应用:页面解析list和map封装后的json数据
- JSON JavaScript中,解析JSON字符串
- JavaScript解析Json
- javascript解析json
- javascript解析从服务器返回的json格式数据
- javascript中eval解析JSON字符串
- JavaScript如何处理解析JSON数据详解
- javascript :解析json数据
- javascript解析json
- JavaScript 解析Json字符串的性能比较分析代码
- 【javascript基础】 原生JSON.parse解析异常问题
- javascript中eval解析JSON字符串
- JavaScript转换与解析JSON方法实例详解