net.sf.json使用

net.sf.json 使用

import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.xml.XMLSerializer;
import org.junit.Test;

import java.util.*;

/**
 * @Author: shengjm
 * @Date: 2020/2/17 13:07
 * @Description:  net.sf.json 学习记录
 *                参考:https://www.cnblogs.com/nananana/p/9263708.html , 侵权删
 */

public class JsonTest {

    @Test
    public void test(){
        //创建JSONObject对象
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("username","wln");
        jsonObject.put("password","123");
        System.out.println("data:" + jsonObject); // data:{"username":"wln","password":"123"}

        //增加属性
        jsonObject.element("sex","男");
        System.out.println("data:" + jsonObject); // data:{"username":"wln","password":"123","sex":"男"}

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

        //创建JSONArray
        JSONArray jsonArray = new JSONArray();
        jsonArray.add(0,"aa");
        jsonArray.add("BB");
        jsonArray.add(1,"AB"); // 插入的指定位置
        jsonArray.add("cc");
        System.out.println("data:"+ jsonArray);// data:["aa","AB","BB","cc"]

        //将JSONArray 添加到 JSONObject
        jsonObject.element("student",jsonArray);
        System.out.println("data:" + jsonObject); // data:{"username":"wln","password":"123","sex":"男","student":["aa","AB","BB","cc"]}

    }

    // JSONArray 测试
    @Test
    public void JSONArrayTest(){
        //创建JSONArray对象
        JSONArray jsonArray = new JSONArray();
        jsonArray.add(0,"aa");
        jsonArray.add(1,"BB");
        jsonArray.element("cc");
        jsonArray.add("DD");
        System.out.println("data:" + jsonArray); // data:["aa","BB","cc","DD"]

        //根据下标获取数据
        System.out.println("第一个数组:" + jsonArray.get(0)); // 第一个数组:aa

        //根据下标设置数据
        jsonArray.set(0,"AAA");
        System.out.println("第一个数组被修改:" + jsonArray.get(0));//第一个数组被修改:AAA

        //创建JSONObject
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("username", "lwc");
        jsonObject.put("password", "123");
        System.out.println("data:"+ jsonObject); //data:{"username":"lwc","password":"123"}

        //把JSONObject放入到JSONArray中
        jsonArray.add(jsonObject);
        System.out.println("data:" + jsonArray); // data:["AAA","BB","cc","DD",{"username":"lwc","password":"123"}]

        //遍历
        System.out.println("data:");
        for(int i=0;i<jsonArray.size();i++){
            System.out.print(jsonArray.get(i)+"\t");  // data: AAA	BB	cc	DD	{"username":"lwc","password":"123"}
        }
    }

    // java 和 JSON 字符串之间转换
    @Test
    public void JavaBeanConvertJson(){

        //将JavaBean转换为JSONObject
        Student student = new Student("wln", "22");
        JSONObject jsonObject = JSONObject.fromObject(student);
        System.out.println("data:" + jsonObject); // data:{"pointless":"22","name":"wln"}

        //将JSONString转换为JSONObject
        //String jsonStr = "{\"name\":\"nana\",\"age\":\"33\"}";
        String jsonStr = jsonObject.toString();
        JSONObject jsonObject1 = JSONObject.fromObject(jsonStr);

        // 转换成对象
        Student stu = (Student) JSONObject.toBean(jsonObject1,Student.class);
        System.out.println("data1:" + stu.getName() + " , data2:" + stu.getPointless()); // data1:wln , data2:22

    }

    // List 与 JSON 字符串之间的转换
    @Test
    public void ListConvertJson(){

        //将List转成JSONArray
        List list = new ArrayList();
        list.add(new Student("wln","22"));
        list.add(new Student("nana","33"));
        JSONArray jsonArray = JSONArray.fromObject(list);
        System.out.println("data:" + jsonArray); // data:[{"pointless":"22","name":"wln"},{"pointless":"33","name":"nana"}]

        //将JSONString转成List
        List list1 = new ArrayList();
        String strJSON = "[{\"name\":\"dada\",\"pointless\":\"44\"},{\"name\":\"xiaoxiao\",\"pointless\":\"55\"}]";
        JSONArray jsonArray1 = JSONArray.fromObject(strJSON);
        for(int i = 0;i < jsonArray1.size(); i++) {
            JSONObject jsonObject = jsonArray1.getJSONObject(i);
            Student stu = (Student) JSONObject.toBean(jsonObject,Student.class);
            list1.add(stu);
        }
        System.out.println("data:" + list1); //data:[Student(name=dada, Pointless=44), Student(name=xiaoxiao, Pointless=55)]

    }

    // map 与 JSON 字符串之间的转换
    @Test
    public void mapConvertJson(){

        //Map转JSONString
        Map map = new HashMap();
        map.put("1", new Student("wln","22"));
        map.put("2", new Student("nana","33"));
        JSONObject jsonMap = JSONObject.fromObject(map);
        System.out.println("data:" + jsonMap); // data:{"1":{"pointless":"22","name":"wln"},"2":{"pointless":"33","name":"nana"}}

        //JSONString转Map
        String jsonStr = "{\"1\":{\"name\":\"dada\",\"pointless\":\"44\"},\"2\":{\"name\":\"xiaoxiao\",\"pointless\":\"55\"}}";
        Map map1 = (Map) JSONObject.fromObject(jsonStr);
        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("data:" + key + " " + stu);// data:1 Student(name=dada, pointless=44)
                                                            // data:2 Student(name=xiaoxiao, pointless=55)
        }

    }

    // JSONArray 与 List 之间的转换
    @Test
    public void JSONArrayConvertList(){

        //List转换为JSONArray
        List<Student> list = new ArrayList<Student>();
        list.add(new Student("wln","22"));
        list.add(new Student("nana","33"));
        JSONArray jsonArray = JSONArray.fromObject(list);
        System.out.println("data:" + jsonArray);// data:[{"pointless":"22","name":"wln"},{"pointless":"33","name":"nana"}]

        //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("data:" + stu);// data:Student(name=wln, pointless=22)
                                                //data:Student(name=nana, pointless=33)
        }
    }

    // JSONArray 与数组之间的转换
    @Test
    public void JSONArrayConvert(){

        //Java数组转换JSONArray
        boolean[] boolArray = new boolean[] {true, false, true};
        JSONArray jsonArray = JSONArray.fromObject(boolArray);
        System.out.println("data:"+ jsonArray.toString()); // data:[true,false,true]

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

}


发布了68 篇原创文章 · 获赞 6 · 访问量 6679

猜你喜欢

转载自blog.csdn.net/renguiriyue/article/details/104358005