解析json之net.sf.json

来源:互联网 发布:单片机与电脑串口通信 编辑:程序博客网 时间:2024/05/16 15:29

下载地址

本次使用版本: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

package com.itlwc.test;import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class Test {public static void main(String[] args) {// 创建JSONObjectJSONObject jsonObject = new JSONObject();jsonObject.put("username", "lwc");jsonObject.put("password", "123");// 打印:1System.out.println(jsonObject);// 增加属性,打印:2jsonObject.element("sex", "男");System.out.println(jsonObject);// 根据key返回,打印:3System.out.println(jsonObject.get("sex"));// 判读输出对象的类型boolean isArray = jsonObject.isArray();boolean isEmpty = jsonObject.isEmpty();boolean isNullObject = jsonObject.isNullObject();// 打印:4System.out.println("是否数组:" + isArray + " 是否空:" + isEmpty + " 是否空对象:"+ isNullObject);// 把JSONArray增加到JSONObject中JSONArray jsonArray = new JSONArray();jsonArray.add(0, "lwc");jsonArray.add(1, "nxj");// 开始增加jsonObject.element("student", jsonArray);// 打印:5System.out.println(jsonObject);}}/*打印结果{"username":"lwc","password":"123"}{"username":"lwc","password":"123","sex":"男"}男是否为数组:false 是否为空:false 是否为空对象:false{"username":"lwc","password":"123","sex":"男","student":["lwc","nxj"]}*/

JSONArray

package com.itlwc.test;import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class Test {public static void main(String[] args) {//创建JSONArrayJSONArray 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");//开始增加,打印:4jsonArray.add(jsonObject);System.out.println(jsonArray);//遍历,打印:5for(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"}]itlwcnxjmxj{"username":"lwc","password":"123"}*/

JavaBean与json字符串互转

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字符串转JavaBeanString 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字符串互转

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字符串转ListList 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字符串互转

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字符串转MapString 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 密码:2222221 用户: lwc 密码:111111*/

JSONArray与List互转

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转型JSONArrayList<Student> list = new ArrayList<Student>();  list.add(new Student("lwc", "111111"));list.add(new Student("nxj", "222222"));         JSONArray jsonArray = JSONArray.fromObject(list);        System.out.println(jsonArray.toString());                //JSONArray转型ListList<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与数组互转

package com.itlwc.test;import net.sf.json.JSONArray;public class Test {public static void main(String[] args) {// Java数组转JSONArrayboolean[] 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
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转JSONString xml = "<root>" + "<name type='type'>zhaipuhong</name>"+ "<gender>male</gender>" + "<birthday>" + "<year>1970</year>"+ "<month>12</month>" + "<day>17</day>" + "</birthday>"+ "</root>";XMLSerializer xmlSerializer = new XMLSerializer();JSON json = xmlSerializer.read(xml);System.out.println(json.toString(2));// JSON转XMLString 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"  }}<?xml version="1.0" encoding="UTF-8"?><o><root class="object"><birthday class="object"><day type="string">17</day><month type="string">12</month><year type="string">1970</year></birthday><gender type="string">male</gender><name type="string">zhaipuhong</name></root></o>*/

9 0
原创粉丝点击