|
°Ê²¼¤Î¤è¤¦¤Ê¿Æ»Ò¥â¥Ç¥ë¤Ç¡¢¥Í¥¹¥È¤·¤¿¥ª¥Ö¥¸¥§¥¯¥È¤¬Àµ¤·¤¯ÊÑ´¹¤µ¤ì¤ë¤«¡¢ÇÛÎó¤äList¤äSet¤Ê¤É¤¬Àµ¤·¤¯ÊÑ´¹¤µ¤ì¤ë¤«»î¤·¤Æ¤ß¤Þ¤¹¡£ public class Parent {
private String name;
private int id;
private Child child;
public Child getChild() { return child; }
public void setChild(Child child) { this.child = child;}
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 toString() {
return new ToStringBuilder(this).
append("id", getId()).append("name",
getName()).append("child", getChild()).toString();
}
}
public class Child {
private String name;
public String getName() { return name;}
public void setName(String name) { this.name = name;}
public String toString() {
return new ToStringBuilder(this)
.append("name", getName()).toString();
}
}
¥Í¥¹¥È¤·¤¿¥ª¥Ö¥¸¥§¥¯¥È †Parent parent = new Parent();
parent.setId(0);
parent.setName("¿Æ¤Î̾Á°");
Child child = new Child();
child.setName("»Ò¤Î̾Á°");
parent.setChild(child);
JSONObject jsonObject = JSONObject.fromObject(parent);
System.out.println(jsonObject);
Parent p = (Parent) JSONObject.toBean(jsonObject, Parent.class);
System.out.println(p);
·ë²Ì {"child":{"name":"»Ò¤Î̾Á°"},"name":"¿Æ¤Î̾Á°","id":0}
Parent@6e70c7[id=0,name=¿Æ¤Î̾Á°,child=Child@1d63e39[name=»Ò¤Î̾Á°]]
¤¦¤Þ¤¯¤¤¤¤Þ¤·¤¿¡£ java.util.List †java.util.List¤òÄɲä·¤Þ¤·¤¿¡£ public class Parent {
private String name;
private int id;
private List list; //ÄɲÃ
public List getList() {return list;} //ÄɲÃ
public void setList(List list) {this.list = list;} //ÄɲÃ
//private Child child;
//public Child getChild() { return child; }
//public void setChild(Child child) { this.child = child;}
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 toString() {
return new ToStringBuilder(this).append("id", getId())
.append("name",getName())
.append("list", list).toString();
}
}
¤³¤ì¤Ç¤ä¤Ã¤Æ¤ß¤ë¤È¡¢¡¢ Parent parent = new Parent();
parent.setId(0);
parent.setName("¿Æ¤Î̾Á°");
Child child = new Child();
child.setName("»Ò¤Î̾Á°");
List<Child> list = new ArrayList<Child>();
list.add(child);
parent.setList(list);
JSONObject jsonObject = JSONObject.fromObject(parent);
System.out.println(jsonObject);
Parent p = (Parent) JSONObject.toBean(jsonObject, Parent.class);
System.out.println(p);
·ë²Ì {"list":[{"name":"»Ò¤Î̾Á°"}],"name":"¿Æ¤Î̾Á°","id":0}
Parent@12a1e44[id=0,name=¿Æ¤Î̾Á°,list=[net.sf.json.util.JSONDynaBean@1ad77a7[
{name=»Ò¤Î̾Á°}
]]]
Child¤òList¤ËÄɲ䷤Ƥ¤¤ë¤Î¤Ç¤¹¤¬¡¢µÕÊÑ´¹¤·¤¿¥ª¥Ö¥¸¥§¥¯¥È¤ÏChild¤Ç¤Ï¤Ê¤¯net.sf.json.util.JSONDynaBean? ¤Ë¤Ê¤Ã¤Á¤ã¤¤¤Þ¤·¤¿¡£¤Þ¤¢ "list":[{"name":"»Ò¤Î̾Á°"}]
¤ÈParent¥¯¥é¥¹¤À¤±¤À¤È¡¢List¤ÎÃæ¿È¤¬Child¤À¤Ã¤Æ¾ðÊ󤬤ʤ¤¤«¤é¡¢Åö¤¿¤êÁ°¤Ç¤¹¤Í¡£¡£ List¤Ê¤É¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ë¤Ä¤¤¤Æ 2009/03/18 Äɵ †µ×¤·¤Ö¤ê¤Ë¿¨¤Ã¤Æ¤ß¤¿¤é¡¢¥â¥¸¥å¡¼¥ë¤¬¿§¡¹¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×¤·¤Æ¤ë¤ß¤¿¤¤¤Ç¤¹¤Í¡£º£¿¨¤Ã¤Æ¤ë¤Î¤Ï¡¢2.2.3¤Ê¤Î¤Ç¤¹¤¬¡¢Ìá¤êÃͤΥ¯¥é¥¹¤¬net.sf.json.util.JSONDynaBean? ¤«¤énet.sf.ezmorph.bean.MorphDynaBean?¤È¤¤¤¦¤Î¤ËÊѹ¹¤Ë¤Ê¤Ã¤¿¤ê¤·¤Æ¤¤¤Þ¤¹¡£*1 ¤Þ¤¿¿§¡¹¥°¥°¤Ã¤Æ¤¿¤é¡¢¥Õ¥£¡¼¥ë¥É¤Î java.util.List ¤ò¥Ó¥·¤Ã¤È¼«Ê¬¤¬»ØÄꤷ¤¿¥¯¥é¥¹¤Ë¥Þ¥Ã¥×¤¹¤ë¤è¤¦¤Ë¥é¥¤¥Ö¥é¥ê¤Ë»Ø¼¨¤Ç¤¤ë¤³¤È¤¬Ê¬¤«¤ê¤Þ¤·¤¿¡£net.sf.json.JsonConfig? ¥¯¥é¥¹¤È¤¤¤¦¤Î¤¬¤¢¤ê¡¢¤³¤ì¤ò»È¤¦¤³¤È¤ÇJson-lib¤Îµóư¤ò¿§¡¹ÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¶ñÂÎŪ¤Ë¤Ï°Ê²¼¤ÎÄ̤ê: private JsonConfig createConfig() {
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setRootClass(Parent.class);
Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("list", Child.class);
jsonConfig.setClassMap(classMap);
return jsonConfig;
}
¤È¤·¤ÆJsonConfig?¥¤¥ó¥¹¥¿¥ó¥¹¤òºîÀ®¤·¤Þ¤¹¡£¥Ý¥¤¥ó¥È¤Ï classMap.put("list", Child.class);
¤È¤·¤Æ¥Õ¥£¡¼¥ë¥É¤ÎÊÑ¿ô̾¤È¤½¤Î¥Õ¥£¡¼¥ë¥É¤Ë¥Þ¥Ã¥Ô¥ó¥°¤·¤¿¤¤¥¯¥é¥¹(ListÆâ¤Ëadd¤¹¤ë¥¯¥é¥¹)¤Î¥Ú¥¢¤òJsonConfig?¥¯¥é¥¹¤ËÀßÄꤷ¤Æ¤ª¤¯¤È¤³¤í¤Ç¤¹¤Í¡£¤¢¤È¤Ï JsonConfig jsonConfig = createConfig(); Parent p = (Parent) JSONObject.toBean(jsonObject, jsonConfig); ¤È¤·¤ÆJsonConfig?¤ò¤ï¤¿¤·¤Ê¤¬¤étoBean¤ò¼Â¹Ô¤¹¤ë¤À¤±¤Ç¤¹¤Í¡£¤Á¤Ê¤ß¤ËJsonConfig?¤òÅϤµ¤Ê¤«¤Ã¤¿¤È¤¤Ï Parent p = (Parent) JSONObject.toBean(jsonObject, Parent.class); ¤È¤·¤Æ°ú¿ô¤ËParent.class¤ò»ØÄꤷ¤Æ¤Þ¤·¤¿¤¬¡¢º£²óParent.class¤ÏJsonConfig?·Ðͳ¤ÇÅϤµ¤ì¤Æ¤¤Æ¤¤¤Þ¤¹¡£ ¼Â¹Ô·ë²Ì¤Ï°Ê²¼¤ÎÄ̤ê: Parent@8ab08f[id=0,name=¿Æ¤Î̾Á°,list=[Child@a5af9f[name=»Ò¤Î̾Á°]]] »ØÄêÄ̤êChild¥¯¥é¥¹¤Ë¥Þ¥Ã¥×¤µ¤ì¤Þ¤·¤¿¡ª¸¤¤¤Ç¤¹¤Í¡¼¡£ ¤Á¤Ê¤ß¤ËJsonConfig?¤Ë¤ÏJava¤Î¥Õ¥£¡¼¥ë¥É̾¤ÈJSONÆâ¤Î¥¡¼Ãͤò¥Þ¥Ã¥Ô¥ó¥°¤·¤¿¤ê¡¢¿§¡¹¤ÈÊØÍø¤Êµ¡Ç½¤¬È÷¤ï¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£ »²¹Í java.util.Set †java.util.List¤òjava.util.Set¤ËÊѤ¨¤Æ¤ß¤Þ¤·¤¿¡£ public class Parent {
private String name;
private int id;
private Set children;
public Set getChildren() {return children;}
public void setChildren(Set children) {this.children = children;}
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 toString() {
return new ToStringBuilder(this).append("id", getId())
.append("name",getName())
.append("children", children).toString();
}
}
¤³¤ì¤Ç¤ä¤Ã¤Æ¤ß¤ë¤È¡¢¡¢ Parent parent = new Parent();
parent.setId(0);
parent.setName("¿Æ¤Î̾Á°");
Child child = new Child();
child.setName("»Ò¤Î̾Á°");
Set<Child> children = new HashSet<Child>();
children.add(child);
parent.setChildren(children);
JSONObject jsonObject = JSONObject.fromObject(parent);
System.out.println(jsonObject);
Parent p = (Parent) JSONObject.toBean(jsonObject, Parent.class);
System.out.println(p);
·ë²Ì 2006/12/31 18:01:40 org.apache.commons.beanutils.PropertyUtilsBean invokeMethod Ã×̿Ū: Method invocation failed. java.lang.IllegalArgumentException: argument type mismatch BeanUtils?¤¬Îã³°¤Ë¤Ê¤Ã¤Á¤ã¤¤¤Þ¤·¤¿¡£ Set¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ë¤Ä¤¤¤Æ 2009/03/18 Äɵ †Àè¤ÎÎã¤ÈƱ¤¸¤ÇJsonConfig?¤Ç Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("children", Child.class);
jsonConfig.setClassMap(classMap);
¤È¤¹¤ë¤³¤È¤Ç¡¢¼Â¹Ô¤¹¤ë¤È Parent@4d921a[id=0,name=¿Æ¤Î̾Á°,children=[Child@4c6320[name=»Ò¤Î̾Á°]]] Àµ¤·¤¯Æ°¤¯¤³¤È¤¬³Îǧ¤Ç¤¤Þ¤·¤¿¡£¾å¤ÎÎã³°¤Î·ï¤Ï¤È¤ê¤¢¤¨¤ºËº¤ì¤Á¤ã¤¤¤Þ¤·¤ç¤¦:-)¡£ ÇÛÎó †ÇÛÎó¤âƱ¤¸¤Ç¤¹¤Í¡£¥À¥á¤Ç¤¹¤Í¤§¡£
java.util.Map †java.util.Set¤òjava.util.Map¤ËÊѤ¨¤Æ¤ß¤Þ¤·¤¿¡£ public class Parent {
private String name;
private int id;
private Map children;
public Map getChildren() {return children;}
public void setChildren(Map children) {this.children = children;}
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 toString() {
return new ToStringBuilder(this).append("id", getId())
.append("name",getName())
.append("children", children).toString();
}
}
¤³¤ì¤Ç¤ä¤Ã¤Æ¤ß¤ë¤È¡¢¡¢ Parent parent = new Parent();
parent.setId(0);
parent.setName("¿Æ¤Î̾Á°");
Child child = new Child();
child.setName("»Ò¤Î̾Á°");
Map children = new HashMap();
children.put("child1", child);
parent.setChildren(children);
JSONObject jsonObject = JSONObject.fromObject(parent);
System.out.println(jsonObject);
Parent p = (Parent) JSONObject.toBean(jsonObject, Parent.class);
System.out.println(p);
·ë²Ì {"name":"¿Æ¤Î̾Á°","id":0,"children":{"child1":{"name":"»Ò¤Î̾Á°"}}}
Parent@b1b4c3[id=0,name=¿Æ¤Î̾Á°,children={child1=net.sf.json.util.JSONDynaBean@1efb836[
{name=»Ò¤Î̾Á°}
]}]
Îã¤Ë¤è¤Ã¤Ækey=child1¤È¤È¤â¤ËÂåÆþ¤µ¤ì¤¿Child¤Ïnet.sf.json.util.JSONDynaBean?¤Ë¤Ê¤Ã¤Á¤ã¤¤¤Þ¤·¤¿¤¬¡¢°ì±þÀµ¾ï½ªÎ»¤Ç¤¹¤Í¡£ Map¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ë¤Ä¤¤¤Æ 2009/03/18 Äɵ †Àè¤ÎJsonConfig?¥¯¥é¥¹¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¤¦¤Þ¤¯¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¤³¤È¤¬¤Ç¤¤½¤¦¤Ç¤¹¡£ private static JsonConfig createConfig() {
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setRootClass(Parent.class);
Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("child1", Child.class);
jsonConfig.setClassMap(classMap);
return jsonConfig;
}
¤³¤Î¤è¤¦¤Ë¡¢child1¤ËÂФ·¤ÆChild¥¯¥é¥¹¤Ç¤¹¤è¤Ã¤Æ»ØÄê¤ò¤¹¤ë¤³¤È¤Ç¡¢ Parent@672bbb[id=0,name=¿Æ¤Î̾Á°,children={child1=Child@dd75a4[name=»Ò¤Î̾Á°]}]
¤È¤Ê¤ê¤Þ¤·¤¿¡£¡£Map¤Î¥¡¼¤¬Áý¤¨¤Æ¤¤¤Ã¤Æ¤â¡¢ classMap.put("child1", Child.class);
classMap.put("child2", Child.class);
¤Î¤è¤¦¤Ë¤½¤ì¤¾¤ì¤Ë¥Þ¥Ã¥×¤¹¤ë¥¯¥é¥¹¤ò»ØÄꤹ¤ì¤ÐÎɤ¤¤ß¤¿¤¤¤Ç¤¹¡£ ´ØÏ¢¥ê¥ó¥¯ †¤³¤Îµ»ö¤Ï
¸½ºß¤Î¥¢¥¯¥»¥¹:21575 |