您的位置:首页 > Web前端 > JavaScript

json-lib库用法

2009-11-21 16:25 302 查看
json-lib依赖

json-lib-2.3-jdk15.jar
=======================
commons-collections-3.1.jar
commons-beanutils.jar
ezmorph-1.0.4.jar
commons-logging-1.1.jar
commons-lang-2.3.jar
xom-1.1.jar

package json;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.beanutils.PropertyUtils;

import net.sf.ezmorph.bean.MorphDynaBean;
import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;

public class JSONTest {

private static String jsonStr = "{/"id/": 1, /"name/": /"haha/", /"email/": [{/"id/": 1, /"address/": /"test_0123@yahoo.com.cn/"}, {/"id/": 2, /"address/": /"test_0123@yahoo.com/"}]}";

public static class User {

private String name;
private int age;

public User() {

}

public User(String n, int a) {
this.name = n;
this.age = a;
}

public void setName(String n) {
this.name = n;
}

public void setAge(int a) {
this.age = a;
}

public String getName() {
return name;
}

public int getAge() {
return age;
}

}

private static User[] getUsers() {
return new User[] {
new User("name1", 11),
new User("name2", 22),
new User("name3", 33)
};
}

private static void printValueFromJsonStr() {
System.out.println(jsonStr);
JSONObject jsonObj = JSONObject.fromObject(jsonStr);
String name = jsonObj.getString("name");
System.out.println("name=" + name);
JSONArray jsonArr = jsonObj.getJSONArray("email");
for (int i = 0; i < jsonArr.size(); i++) {
JSONObject jObj = jsonArr.getJSONObject(i);
System.out.println("address=" + jObj.getString("address"));
}
}

private static void strToJsonArray() {
String str = "['1','2','3']";
JSONArray arr = JSONArray.fromObject(str);
System.out.println("strToJsonArray=" + arr.toString());
}

private static void printValueFromJsonStr1() {
System.out.println(jsonStr);
JSONObject jsonObj = JSONObject.fromObject(jsonStr);
Object bean = JSONObject.toBean(jsonObj);
try {
String name = (String)PropertyUtils.getProperty(bean, "name");
Object email = PropertyUtils.getIndexedProperty(bean, "email", 1);
String addr = (String)PropertyUtils.getProperty(email, "address");
System.out.println("class=" + email.getClass() + ";addr=" + addr);
MorphDynaBean eBean = (MorphDynaBean)email;
System.out.println("printValueFromJsonStr1=" + name);
} catch (Exception e) {
e.printStackTrace();
}
}

private static void strToBean() {
String str = "{/"name/": /"haha/", /"age/": 26}";
JSONObject obj = JSONObject.fromObject(str);
User bean = (User)obj.toBean(obj, User.class);
System.out.println("name=" + bean.getName() + ";age=" + bean.getAge());
}

private static void mapToJson() {
Map<String, String> map = new HashMap<String, String>();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
JSONObject jsonObj = JSONObject.fromObject(map);
System.out.println("Map=" + jsonObj.toString());
}

private static void arrayToJson() {
User[] users = getUsers();
JSONArray jsonArr = JSONArray.fromObject(users);
System.out.println("Array=" + jsonArr.toString());
}

private static void listToJson() {
User[] users = getUsers();
List<User> data = new ArrayList<User>();
for (int i = 0; i < users.length; i++) {
data.add(users[i]);
}
JSONArray jsonArr = JSONArray.fromObject(data);
System.out.println("List=" + jsonArr.toString());
}

private static void objectToJson() {
User user = new User("name", 26);
JSONObject jsonObj = JSONObject.fromObject(user);
System.out.println("Object=" + jsonObj.toString());
}

private static void combineToJson() {
User[] users = getUsers();
Map<String, Object> map = new HashMap<String, Object>();
map.put("users", users);
map.put("key1", "value1");
List<Object> list = new ArrayList<Object>();
list.add(map);
list.add("test");
Map<String, Object> outerMap = new HashMap<String, Object>();
outerMap.put("list", list);
outerMap.put("flag", "outer");
JSONObject jsonObj = JSONObject.fromObject(outerMap);
System.out.println("Combine=" + jsonObj.toString());
}

private static void jsonToXml() {
System.out.println(jsonStr);
JSONObject jsonObj = JSONObject.fromObject(jsonStr);
XMLSerializer x = new XMLSerializer();
String xml = x.write(jsonObj);
System.out.println("toXml=" + xml);
}

private static void xmlToJson() {
String xml = "<o><email class='array'><e class='object'><address type='string'>test_0123@yahoo.com.cn</address><id type='number'>1</id></e></email></o>";
XMLSerializer x = new XMLSerializer();
JSON json = x.read(xml);
System.out.println("toJson=" + json.toString());
}

public static void main(String[] args) {
printValueFromJsonStr();
printValueFromJsonStr1();
strToJsonArray();
strToBean();
mapToJson();
arrayToJson();
listToJson();
objectToJson();
combineToJson();
jsonToXml();
xmlToJson();
}

}


printValueFromJsonStr方法结果:

{"id": 1, "name": "haha", "email": [{"id": 1, "address": "test_0123@yahoo.com.cn"}, {"id": 2, "address": "test_0123@yahoo.com"}]}

name=haha
address=test_0123@yahoo.com.cn
address=test_0123@yahoo.com

printValueFromJsonStr1方法结果:

{"id": 1, "name": "haha", "email": [{"id": 1, "address": "test_0123@yahoo.com.cn"}, {"id": 2, "address": "test_0123@yahoo.com"}]}
class=class net.sf.ezmorph.bean.MorphDynaBean;addr=test_0123@yahoo.com
printValueFromJsonStr1=haha

strToJsonArray方法结果:

strToJsonArray=["1","2","3"]

strToBean结果:

name=haha;age=26

mapToJson结果:

Map={"key3":"value3","key2":"value2","key1":"value1"}

arrayToJson结果:

Array=[{"age":11,"name":"name1"},{"age":22,"name":"name2"},{"age":33,"name":"name3"}]

listToJson结果:

List=[{"age":11,"name":"name1"},{"age":22,"name":"name2"},{"age":33,"name":"name3"}]

objectToJson结果:

Object={"age":26,"name":"name"}

combineToJson结果:

Combine={"flag":"outer","list":[{"users":[{"age":11,"name":"name1"},{"age":22,"name":"name2"},{"age":33,"name":"name3"}],"key1":"value1"},"test"]}

jsonToXml结果:

{"id": 1, "name": "haha", "email": [{"id": 1, "address": "test_0123@yahoo.com.cn"}, {"id": 2, "address": "test_0123@yahoo.com"}]}
toXml=<?xml version="1.0" encoding="UTF-8"?>
<o><email class="array"><e class="object"><address type="string">test_0123@yahoo.com.cn</address><id type="number">1</id></e><e class="object"><address type="string">test_0123@yahoo.com</address><id type="number">2</id></e></email><id type="number">1</id><name type="string">haha</name></o>

xmlToJson结果:

toJson={"email":[{"address":"test_0123@yahoo.com.cn","id":1}]}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: