json-lib가 json 형식의 문자열을 자바 대상으로 바꾸는 실례
JSONObject json = JSONObject.fromObject(data);
Dispatchplan dp = (Dispatchplan)JSONObject.toBean(json, Dispatchplan.class);
원인 JSON Object가 날짜 형식을 인식하지 못할 수 있습니다. 다음과 같은 수정을 하면 해결됩니다.
Dispatchplan dp = new Dispatchplan();
JSONObject json = JSONObject.fromObject(data);
String[] dateFormats = new String[] {"yyyy-MM-dd HH:mm:ss"};
JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dateFormats));
dp = (Dispatchplan)JSONObject.toBean(json, Dispatchplan.class);
다음 문제를 논의해 보겠습니다.복잡한 유형의 대상을 바꿀 때 주의해야 할 점이 있다.
예는 다음과 같습니다.
public class A {
private List<B> list;
public List<B> getList() {
return list;
}
public void setList(List<B> list) {
this.list = list;
}
public static void main(String[] args) {
JSONObject json = JSONObject.fromObject("{list:[{name:'Tom',age:999}]}");
A j = (A) JSONObject.toBean(json, A.class);
System.out.println(j);
}
}
class B {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
실행 후 A 객체의 리스트에 B 객체가 아닌 Morph Dyna Bean이 담겼다고요?어떻게 json 대상을 직접 필요한 bean 대상으로 봉인합니까?답은 다음과 같습니다.
너는 JSON Object에 있어야 한다.toBean 때list의 원소 유형을 매개 변수로 전송합니다.코드는 아래와 같으니, 너는 틀림없이 이해할 수 있을 것이다
Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("list", B.class);
A j = (A) JSONObject.toBean(json, A.class,classMap);
이상의 이 json-lib는 json 형식의 문자열을 자바 대상으로 전환시킨 실례는 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분께 참고가 되고 저희를 많이 사랑해 주시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
콘텐츠 SaaS | JSON 스키마 양식 빌더Bloomreach Content를 위한 JSON Form Builder 맞춤형 통합을 개발합니다. 최근 Bloomreach Content SaaS는 내장 앱 프레임워크를 사용하여 혁신적인 콘텐츠 유형 필드를 구축할...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.