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}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WeakHashMap,IdentityHashMap,EnumMap다른 맵 구현 클래스와 달리 WeakHashMap 클래스의 키 대상은 간접적으로 약한 인용의 지시 대상으로 저장되며, 키가 정상적으로 사용되지 않을 때 자동으로 항목을 제거합니다.더 정확히 말하면, 주어진 키에 대한...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.