JSON 과 집합 상호 전환(JSONobject 와 JSONARray 사용)

37738 단어 JavaSE
전재 하 다
원문:https://www.cnblogs.com/520playboy/p/5766190.html
1.의지 하 는 JAR 가방
프로그램 을 실행 하려 면 JSON-lib 패 키 지 를 도입 해 야 합 니 다.JSON-lib 패 키 지 는 다음 과 같은 JAR 패 키 지 를 동시에 의존 해 야 합 니 다.
commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar ezmorph.jar json-lib-2.2.2-jdk15.jar
응용 장면:배경 자바 클래스,예 를 들 어 실체 클래스,List,Set,Map 을 json 문자열 로 바 꾸 어 다른 항목 이나 jsp 엔 드 jsp 엔 드 또는 다른 항목 에서 보 낸 json 문자열 은 l 실체 클래스,List,Set,Map 등 자바 류 로 해석 해 야 합 니 다.
3.Demo
학생 실체 클래스
package json;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class Student {
     private int id;
     private String name;
     private String age;
     private Date birthDay;
     private List list;
     private Set set;
     private Map map;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    
    public Date getBirthDay() {
        return birthDay;
    }
    public void setBirthDay(Date birthDay) {
        this.birthDay = birthDay;
    }
    
    public List getList() {
        return list;
    }
    public void setList(List list) {
        this.list = list;
    }
    public Set getSet() {
        return set;
    }
    public void setSet(Set set) {
        this.set = set;
    }
    
    public Map getMap() {
        return map;
    }
    public void setMap(Map map) {
        this.map = map;
    }
    @Override
    public String toString() {
        return "Student [id=" + id + ", name=" + name + ", age=" + age
                + ", birthDay=" + birthDay + ", list=" + list + ", set=" + set
                + ", map=" + map + "]";
    }
    
     
}

자바 대상 이 json 대상 으로 정렬 되 었 을 때 처리 날짜 의 처리 클래스
package json;

import java.text.SimpleDateFormat;
import java.util.Date;

import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
/**
 * 
 * @author yangguojun
 * java    jsonObject ,     
 */
public class JsonDateValueProcessor implements JsonValueProcessor {
     /**
      *           
      */
    @Override
    public Object processArrayValue(Object value , JsonConfig config) {
        // TODO Auto-generated method stub
        return processor(value);
    }
    /**
     *          
     */
    @Override
    public Object processObjectValue(String propertyName, Object value, JsonConfig config) {
        return processor(value);
    }
    /**
     *           
     * @param value
     * @return
     */
    private Object processor(Object value){
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        if(value instanceof Date){
            return format.format(value);
        }
        return value == null ? "":value.toString();        
    }

}

테스트 클래스
package json;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;

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

public class JsonDemo {
    public static void main(String[] args) {
        //  JSON        
        JSONObject jsonObj1 = new JSONObject();
        jsonObj1.put("id", "1");
        jsonObj1.put("name", "rose");
        jsonObj1.put("age", 25);
        System.out.println("jsonObj1"+jsonObj1);
        //  JSON        
        HashMap<String, Object> map = new HashMap<String,Object>();
        map.put("id", "2");
        map.put("name", "zhangsan");
        map.put("age", "25");
        JSONObject jsonObj2 = JSONObject.fromObject(map);
        System.out.println("jsonObj2"+jsonObj2);
        
         //    JsonArray  1
        JSONArray jsonArray = new JSONArray();
        jsonArray.add(0, "ZHULI");
        jsonArray.add(1, "30");
        jsonArray.add(2, "ALI");
        System.out.println("jsonArray1:" + jsonArray);
        
        //  JsonArray  2
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("   ");
        arrayList.add("23");
        arrayList.add("5");
        System.out.println("jsonArray2:" + JSONArray.fromObject(arrayList));
        
        //      JSON  (JSON    JSON  )
        JSONObject jsonObj3 = new JSONObject();
        jsonObj3.put("id", 3);
        jsonObj3.put("name", "lisi");
        jsonObj3.put("age", 23);
        jsonObj3.put("arrayList", arrayList);
        System.out.println("jsonObj3"+jsonObj3);
        
        //      JSON  (JSON     JSON  )、
        JSONArray jsonArray3 = new JSONArray();
        jsonArray3.add("4");
        jsonArray3.add("wangwu");
        jsonArray3.add("26");
        jsonArray3.add(map);
        System.out.println("jsonArray3"+jsonArray3);       
        // JSON     JSON  
        String jsonString = "{\"id\":3,\"name\":\"lisi\",\"age\":23,\"arrayList\":[\"ZHULI\",\"30\",\"ALI\"]}";
        JSONObject jsonObj4 = JSONObject.fromObject(jsonString);
        System.out.println(jsonObj4.get("id")+"--"+jsonObj4.get("name")+"--"+jsonObj4.get("age")+
                "--"+jsonObj4.get("arrayList"));
        //java     JSONObject
        Student stu = new Student();
        stu.setId(1);
        stu.setName("   ");
        stu.setAge("23");
        stu.setBirthDay(new Date());
        stu.setList(arrayList);
        HashSet<Object> set = new HashSet<>();
        set.add("6");
        set.add("   ");
        set.add("25");
        stu.setSet(set);
        stu.setMap(map);
        JsonConfig jsonConfig = new JsonConfig();
        jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
        JSONObject jsonObj5 = JSONObject.fromObject(stu,jsonConfig);
        System.out.println("   :"+jsonObj5);
        //json java   
        Student student = (Student) JSONObject.toBean(jsonObj5, Student.class);
        System.out.println("    :"+student);
       }
   
       
}

테스트 결과
"id":"1","name":"rose","age":25}jsonObj2{"id":"2","age":"25","name":"zhangsan"}jsonArray 1:["ZHULI","30","ALI"]jsonArray 2:["코 벤 수","23","5"jsonObj3{"id":3,"name":"lisi","age","age":23,"array List":["코 벤 수","23","23",","5"]jsonObj3{"id":3,"name":"lisi",","age","23,"array List":["코 벤 수",",""5"]}jsonArray 3["4","wangwu","26",{"id":"2","age":"25","name":"zhangsan"}]3–lisi–23–["ZHULI","30","ALI"]서열 화:{"age":"23","생일":"2016-08-13 23 23 23 23 23:22:27","id":1,"id":1,"list":["코 문수","23","5"","map","map"{"id","id":"2",","id","2",",","2",",","2",",","2",",",","age":"25","name":"zhangsan"},"name":"나 지 무","set":["척 광 휘","6","25"]}반 서열 화:Student[id=1,name=나 지 무,age=23,birth Day=Sat Aug 13 23:22:27 CST 2016,list=[코 문수,23,5],set=[척 광 휘,6,25],map={id=2,name=zhangsan,age=25}

좋은 웹페이지 즐겨찾기