您的位置:首页 > 编程语言 > Java开发

Json javaBean xml String之间的转换

2013-12-19 08:58 621 查看

1.JSONObject介绍

JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包。

2.下载jar包

http://files.cnblogs.com/java-pan/lib.rar

提供了除JSONObject的jar之外依赖的其他6个jar包,一共7个jar文件

说明:因为工作中项目用到的版本是1.1的对应jdk1.3的版本,故本篇博客是基于1.1版本介绍的。

对应此版本的javadoc下载路径如下:http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-1.1/

目前最新的版本为2.4,其他版本下载地址为http://sourceforge.net/projects/json-lib/files/json-lib/

3.项目环境:

system:WIN7 myeclipse:6.5 tomcat:5.0 JDK:开发环境和编译用的都是1.6



JSONArray:A JSONArray is an ordered sequence of values.

是一个final类,继承了Object,实现了JSON接口

构造方法如下:

JSONArray();构造一个空的JSONArray对象


普通方法如下:

fromArray(Object[]
array);静态方法,通过一个java数组创建一个JSONArray对象


fromCollection(Collection collection);静态方法,通过collection集合对象创建一个JSONArray对象


fromString(String string);静态方法,通过一个json格式的字符串构造一个JSONArray对象


toString();把JSONArray对象转换为json格式的字符串


iterator();返回一个Iterator对象来遍历元素


接下来同样是put/get方法……


XMLSerializer:Utility class for transforming JSON to XML an back.

一个继承自Object的类

构造方法如下:

XMLSerializer();创建一个XMLSerializer对象


普通方法如下:

setRootName(String rootName);设置转换的xml的根元素名称


setTypeHintsEnabled(boolean
typeHintsEnabled);设置每个元素是否显示type属性


write(JSON json);把json对象转换为xml,默认的字符编码是UTF-8,


需要设置编码可以用write(JSON json, String encoding)

对XML和JSON字符串各列一个简单的例子

JSON:

{"password":"123456","username":"张三"}

xml

<?xml version="1.0" encoding="UTF-8"?>

<user_info>

<password>123456</password>

<username>张三</username>

</user_info>

转换代码如下:

public class JsonObjects {
/**
* java字符串转换成json
*/
public static void javaToJSON() {
System.out.println("java代码封装为json字符串");
JSONObject jsonObj = new JSONObject();
jsonObj.put("username", "张三");
jsonObj.put("password", "123456");
System.out.println("java--->json \n" + jsonObj.toString());
}
/**
* json字符串转换成java
*/
public static void jsonToJAVA() {
System.out.println("json字符串转java代码");
String jsonStr = "{\"password\":\"123456\",\"username\":\"张三\"}";
JSONObject jsonObj = JSONObject.fromString(jsonStr);
String username = jsonObj.getString("username");
String password = jsonObj.optString("password");
System.out.println("json--->java\n username=" + username
+ "\t password=" + password);
}
/**
* json转换成xml字符串
*/
public static void jsonToXML() {
System.out.println("json字符串转xml字符串");
String jsonStr = "{\"password\":\"123456\",\"username\":\"张三\"}";
JSONObject json = JSONObject.fromString(jsonStr);
XMLSerializer xmlSerializer = new XMLSerializer();
xmlSerializer.setRootName("user_info");
xmlSerializer.setTypeHintsEnabled(false);
String xml = xmlSerializer.write(json);
System.out.println("json--->xml \n" + xml);
}
/**
* javaBean转换成json
* 需要创建一个实体类javabean
*/
public static void javaBeanToJSON() {
System.out.println("javabean转json字符串");
UserInfo userInfo = new UserInfo();
userInfo.setUsername("张三");
userInfo.setPassword("123456");
JSONObject json = JSONObject.fromBean(userInfo);
System.out.println("javabean--->json \n" + json.toString());
}
/**
* javaBean 转换成xml字符串
* 需要创建一个javaBean
*/
public static void javaBeanToXML() {
System.out.println("javabean转xml字符串");
UserInfo userInfo = new UserInfo();
userInfo.setUsername("张三");
userInfo.setPassword("123456");
JSONObject json = JSONObject.fromBean(userInfo);
XMLSerializer xmlSerializer = new XMLSerializer();
String xml = xmlSerializer.write(json, "UTF-8");
System.out.println("javabean--->xml \n" + xml);
}
/**
* xml字符串转换为Json字符串
*/
public static void xmlToJSON(){
System.out.println("xml字符串转json字符串");
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><user_info><password>123456</password><username>张三</username></user_info>";
JSON json=XMLSerializer.read(xml);

System.out.println("xml--->json \n"+json.toString());
}
/**
* 测试入口
* @param args
*/
public static void main(String args[]) {

javaBeanToXML();
}

}


实体类javaBean

public class UserInfo {

private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: