关闭

欢迎使用CSDN-markdown编辑器

标签: json
417人阅读 评论(0) 收藏 举报
分类:

解析json之net.sf.json

Come From:http://blog.csdn.net/itlwc/article/details/38442667

下载地址
[plain] view plaincopy在CODE上查看代码片派生到我的代码片
本次使用版本:http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-1.1/
最新版本:http://sourceforge.net/projects/json-lib/files/json-lib/
使用net.sf.json需要导入的包

JSONObject
[java] view plaincopy在CODE上查看代码片派生到我的代码片
package com.itlwc.test;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class Test {
public static void main(String[] args) {
// 创建JSONObject
JSONObject jsonObject = new JSONObject();
jsonObject.put(“username”, “lwc”);
jsonObject.put(“password”, “123”);
// 打印:1
System.out.println(jsonObject);

    // 增加属性,打印:2  
    jsonObject.element("sex", "男");  
    System.out.println(jsonObject);  

    // 根据key返回,打印:3  
    System.out.println(jsonObject.get("sex"));  

    // 判读输出对象的类型  
    boolean isArray = jsonObject.isArray();  
    boolean isEmpty = jsonObject.isEmpty();  
    boolean isNullObject = jsonObject.isNullObject();  
    // 打印:4  
    System.out.println("是否数组:" + isArray + " 是否空:" + isEmpty + " 是否空对象:"  
            + isNullObject);  

    // 把JSONArray增加到JSONObject中  
    JSONArray jsonArray = new JSONArray();  
    jsonArray.add(0, "lwc");  
    jsonArray.add(1, "nxj");  
    // 开始增加  
    jsonObject.element("student", jsonArray);  
    // 打印:5  
    System.out.println(jsonObject);  
}  

}
/*
打印结果
{“username”:”lwc”,”password”:”123”}
{“username”:”lwc”,”password”:”123”,”sex”:”男”}

是否为数组:false 是否为空:false 是否为空对象:false
{“username”:”lwc”,”password”:”123”,”sex”:”男”,”student”:[“lwc”,”nxj”]}
*/
JSONArray
[java] view plaincopy在CODE上查看代码片派生到我的代码片
package com.itlwc.test;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class Test {
public static void main(String[] args) {
//创建JSONArray
JSONArray jsonArray = new JSONArray();
jsonArray.add(0, “lwc”);
jsonArray.add(1, “nxj”);
jsonArray.element(“mxj”);
//打印:1
System.out.println(jsonArray);

    //根据下标返回,打印:2  
    System.out.println(jsonArray.get(0));  

    //根据下标设置新值,打印:3  
    jsonArray.set(0, "itlwc");  
    System.out.println(jsonArray);  

    //把JSONObject放入到JSONArray中  
    JSONObject jsonObject = new JSONObject();  
    jsonObject.put("username", "lwc");  
    jsonObject.put("password", "123");  
    //开始增加,打印:4  
    jsonArray.add(jsonObject);  
    System.out.println(jsonArray);  

    //遍历,打印:5  
    for(int i=0;i<jsonArray.size();i++){  
        System.out.print(jsonArray.get(i)+"\t");  
    }  
}  

}
/*
打印结果
[“lwc”,”nxj”,”mxj”]
lwc
[“itlwc”,”nxj”,”mxj”]
[“itlwc”,”nxj”,”mxj”,{“username”:”lwc”,”password”:”123”}]
itlwc nxj mxj {“username”:”lwc”,”password”:”123”}
*/
JavaBean与json字符串互转
[java] view plaincopy在CODE上查看代码片派生到我的代码片
package com.itlwc.test;

import net.sf.json.JSONObject;

import com.itlwc.entity.Student;

public class Test {
public static void main(String[] args) {
// JavaBean对象转json字符串
Student stu1 = new Student(“lwc”, “111111”);
JSONObject jsonObject = JSONObject.fromObject(stu1);
System.out.println(jsonObject);

    // json字符串转JavaBean  
    String jsondata = "{\"password\":\"111111\",\"username\":\"lwc\"}";  
    JSONObject jsonObject1 = JSONObject.fromObject(jsondata);  
    Student stu2 = (Student) JSONObject.toBean(jsonObject1, Student.class);  
    System.out.println(stu2);  
}  

}
/*
打印结果:
{“password”:”111111”,”username”:”lwc”}
用户: lwc 密码:111111
*/
List与json字符串互转
[java] view plaincopy在CODE上查看代码片派生到我的代码片
package com.itlwc.test;

import java.util.ArrayList;
import java.util.List;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import com.itlwc.entity.Student;

public class Test {
public static void main(String[] args) {
// List转json字符串
List list = new ArrayList();
list.add(new Student(“lwc”, “111111”));
list.add(new Student(“nxj”, “222222”));
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray);

    // json字符串转List  
    List list1 = new ArrayList();  
    String jsondata = "[{\"password\":\"111111\",\"username\":\"lwc\"},{\"password\":\"222222\",\"username\":\"nxj\"}]";  
    JSONArray jsonArray1 = JSONArray.fromObject(jsondata);  
    for (int i = 0; i < jsonArray1.size(); i++) {  
        JSONObject jsonObject2 = jsonArray1.getJSONObject(i);  
        Student stu2 = (Student) JSONObject.toBean(jsonObject2,  
                Student.class);  
        list1.add(stu2);  
    }  
    System.out.println(list1);  
}  

}
/*
打印结果:
[{“password”:”111111”,”username”:”lwc”},{“password”:”222222”,”username”:”nxj”}]
[用户: lwc 密码:111111, 用户: nxj 密码:222222]
*/
Map与json字符串互转
[java] view plaincopy在CODE上查看代码片派生到我的代码片
package com.itlwc.test;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import net.sf.json.JSONObject;

import com.itlwc.entity.Student;

public class Test {
public static void main(String[] args) {
// Map转json字符串
Map map = new HashMap();
map.put(“1”, new Student(“lwc”, “111111”));
map.put(“2”, new Student(“nxj”, “222222”));
JSONObject jsonMap = JSONObject.fromObject(map);
System.out.println(jsonMap);

    // json字符串转Map  
    String jsondata = "{\"2\":{\"password\":\"222222\",\"username\":\"nxj\"},\"1\":{\"password\":\"111111\",\"username\":\"lwc\"}}";  
    Map map1 = (Map) JSONObject.fromObject(jsondata);  
    Set set = map1.keySet();  
    Iterator ite = set.iterator();  
    while (ite.hasNext()) {  
        String key = (String) ite.next();  
        JSONObject jsonObject = JSONObject.fromObject(map1.get(key));  
        Student stu = (Student) JSONObject  
                .toBean(jsonObject, Student.class);  
        System.out.println(key + " " + stu);  
    }  

}  

}
/*
打印结果:
{“2”:{“password”:”222222”,”username”:”nxj”},”1”:{“password”:”111111”,”username”:”lwc”}}
2 用户: nxj 密码:222222
1 用户: lwc 密码:111111
*/
JSONArray与List互转
[java] view plaincopy在CODE上查看代码片派生到我的代码片
package com.itlwc.test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import net.sf.json.JSONArray;
import net.sf.json.JsonConfig;

import com.itlwc.entity.Student;

public class Test {
public static void main(String[] args) {
//List转型JSONArray
List list = new ArrayList();
list.add(new Student(“lwc”, “111111”));
list.add(new Student(“nxj”, “222222”));
JSONArray jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray.toString());

    //JSONArray转型List  
    List<Student> list2 = JSONArray.toList(jsonArray, new Student(), new JsonConfig());  
    Iterator<Student> ite =  list2.iterator();  
    while(ite.hasNext()){  
        Student stu =ite.next();  
        System.out.println(stu);  
    }  
}  

}
/*
打印结果
[{“password”:”111111”,”username”:”lwc”},{“password”:”222222”,”username”:”nxj”}]
用户: lwc 密码:111111
用户: nxj 密码:222222
*/
JSONArray与数组互转
[java] view plaincopy在CODE上查看代码片派生到我的代码片
package com.itlwc.test;

import net.sf.json.JSONArray;

public class Test {
public static void main(String[] args) {
// Java数组转JSONArray
boolean[] boolArray = new boolean[] { true, false, true };
JSONArray jsonArray = JSONArray.fromObject(boolArray);
System.out.println(jsonArray.toString());

    // JSONArray转Java数组  
    Object obj[] = jsonArray.toArray();  
    for (Object o : obj) {  
        System.out.print(o + " ");  
    }  
}  

}
/*
打印结果 :
[true,false,true]
true false true
*/
XML与JSON互转
需要导入xom-1.1.jar
[java] view plaincopy在CODE上查看代码片派生到我的代码片
package com.itlwc.test;

import net.sf.json.JSON;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;

public class Test {
public static void main(String[] args) throws Exception {
// XML转JSON
String xml = “” + “zhaipuhong”
+ “male” + “” + “1970”
+ “12” + “17” + “”
+ ““;
XMLSerializer xmlSerializer = new XMLSerializer();
JSON json = xmlSerializer.read(xml);
System.out.println(json.toString(2));

    // JSON转XML  
    String jsondata = "{\"root\":{" + "\"name\":\"zhaipuhong\","  
            + "\"gender\":\"male\"," + "\"birthday\":{"  
            + "\"year\":\"1970\"," + "\"month\":\"12\"," + "\"day\":\"17\""  
            + "}" + "}" + "}";  
    JSONObject jsonObject = JSONObject.fromObject(jsondata);  
    String xmlstr = new XMLSerializer().write(jsonObject);  
    System.out.println(xmlstr);  
}  

}
/*
打印结果:
{
“name”: “zhaipuhong”,
“gender”: “male”,
“birthday”: {
“year”: “1970”,
“month”: “12”,
“day”: “17”
}
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1389216次
    • 积分:17516
    • 等级:
    • 排名:第560名
    • 原创:331篇
    • 转载:645篇
    • 译文:3篇
    • 评论:98条
    文章分类
    最新评论