JS和JAVA使用JSON方法解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JS和JAVA使用JSON方法解析
一.JS部分==================
将json字符串转换为json对象的方法。在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。
例如:
JSON字符串:
[javascript] view plain copy 在CODE上查看代码片派生到我的代码片
var str1 = '{ "name": "cxh", "sex": "man" }';
JSON对象:
[javascript] view plain copy 在CODE上查看代码片派生到我的代码片
var str2 = { "name": "cxh", "sex": "man" };
一、JSON字符串转换为JSON对象
要使用上面的str1,必须使用下面的方法先转化为JSON对象:
[javascript] view plain copy 在CODE上查看代码片派生到我的代码片
//由JSON字符串转换为JSON对象
var obj = eval('(' + str + ')');
或者
[javascript] view plain copy 在CODE上查看代码片派生到我的代码片
//由JSON字符串转换为JSON对象
var obj = str.parseJSON();
或者
[javascript] view plain copy 在CODE上查看代码片派生到我的代码片
//由JSON字符串转换为JSON对象
var obj = JSON.parse(str);
然后,就可以这样读取:
[javascript] view plain copy 在CODE上查看代码片派生到我的代码片
Alert();
Alert(obj.sex);
特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。
二、可以使用toJSONString()或者全局方法JSON.stringify()将JSON对象转化为JSON字符串。
例如:
[javascript] view plain copy 在CODE上查看代码片派生到我的代码片
//将JSON对象转化为JSON字符
var last=obj.toJSONString();
或者
[javascript] view plain copy 在CODE上查看代码片派生到我的代码片
//将JSON对象转化为JSON字符
var last=JSON.stringify(obj);
alert(last);
上面的几个方法中,除了eval()函数是js自带的之外,其他的几个方法都来自json.js包。新版本的JSON 修改了API,将JSON.stringify() 和JSON.parse() 两个方法都注入到了JavaScript 的内建对象里面,前者变成了Object.toJSONString(),而后者变成了String.parseJSON()。如果提示找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低。
二.Java部分===============
1. json-lib是一个java类库,提供将Java对象,包括beans, maps, collections, Java arrays and XML等转换成JSON,或者反向转换的功能。
2. json-lib 主页:/
3.执行环境
需要以下类库支持(Maven构建)
[html] view plain copy 在CODE上查看代码片派生到我的代码片
pom.xml
下表中是Java与JavaScript类型对应关系。
代码示例:
注:在将Json 形式的字符串转换为JavaBean 的时候需要注意JavaBean 中必须有无参构造函数,否则会报如下找不到初始化方法的错误
JavaBean代码:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
package com.ppl.jsonconvert;
public class Student {//姓名
private String name;
//年龄
private String age;
//住址
private String address;
//在将Json 形式的字符串转换为JavaBean 的时候需要注意JavaBean 中必须有无参构造函数,否则会报如下找不到初始化方法的错误
public Student() {
super();
}
public Student(String name, String age, String address) {
super();
= name;
this.age = age;
this.address = address;
}
public String getName() {
return name;