¤³¤Î¥Ú¡¼¥¸¤òdel.icio.us¤ËÄɲà ¤³¤Î¥Ú¡¼¥¸¤ò¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲ䳤Υڡ¼¥¸¤ò´Þ¤à¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯ ¤³¤Î¥Ú¡¼¥¸¤òlivedoor ¥¯¥ê¥Ã¥×¤ËÄɲà ¤³¤Î¥Ú¡¼¥¸¤òYahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲ䳤Υڡ¼¥¸¤ò´Þ¤àYahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯
Top / JSON / Json-lib¤ò»È¤¦ / JSON¤«¤éJava¤Ø¤¤¤í¤ó¤ÊÊÑ´¹

°Ê²¼¤Î¤è¤¦¤Ê¿Æ»Ò¥â¥Ç¥ë¤Ç¡¢¥Í¥¹¥È¤·¤¿¥ª¥Ö¥¸¥§¥¯¥È¤¬Àµ¤·¤¯ÊÑ´¹¤µ¤ì¤ë¤«¡¢ÇÛÎó¤ä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=»Ò¤Î̾Á°]]]

Àµ¤·¤¯Æ°¤¯¤³¤È¤¬³Îǧ¤Ç¤­¤Þ¤·¤¿¡£¾å¤ÎÎã³°¤Î·ï¤Ï¤È¤ê¤¢¤¨¤ºËº¤ì¤Á¤ã¤¤¤Þ¤·¤ç¤¦:-)¡£

ÇÛÎó

ÇÛÎó¤âƱ¤¸¤Ç¤¹¤Í¡£¥À¥á¤Ç¤¹¤Í¤§¡£

2009/03/18Äɵ­
ÇÛÎó¤âÀµ¤·¤¯Æ°¤­¤Þ¤¹¡£¼ÂºÝ¼Â¹Ô¤·¤Æ¤ß¤ë¤È¡¢
Parent@8ab08f[id=0,name=¿Æ¤Î̾Á°,children={Child@a5af9f[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);

¤Î¤è¤¦¤Ë¤½¤ì¤¾¤ì¤Ë¥Þ¥Ã¥×¤¹¤ë¥¯¥é¥¹¤ò»ØÄꤹ¤ì¤ÐÎɤ¤¤ß¤¿¤¤¤Ç¤¹¡£

´ØÏ¢¥ê¥ó¥¯


¤³¤Îµ­»ö¤Ï

ÁªÂò»è Åêɼ
¤ª¤â¤·¤í¤«¤Ã¤¿ 9  
¤½¤¦¤Ç¤â¤Ê¤¤ 1  
  • ¤ä¤êÊý¤¬°­¤¤¤è¤¦¤Êµ¤¤¬¤¹¤ë¤Ê¤¢¡£¡£¤Ç¤â»þ´ÖÀڤ졣¡£¡£ -- ¤­¤Î? 2006-12-31 23:10:37 (Æü)
  • Enum¤Ï¡© -- ¤È¤ª¤ê¤¹¤¬¤ê? 2007-03-09 (¶â) 09:16:17

¤³¤Î¥Ú¡¼¥¸¤òdel.icio.us¤ËÄɲà ¤³¤Î¥Ú¡¼¥¸¤ò¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲ䳤Υڡ¼¥¸¤ò´Þ¤à¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯ ¤³¤Î¥Ú¡¼¥¸¤òlivedoor ¥¯¥ê¥Ã¥×¤ËÄɲà ¤³¤Î¥Ú¡¼¥¸¤òYahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÄɲ䳤Υڡ¼¥¸¤ò´Þ¤àYahoo!¥Ö¥Ã¥¯¥Þ¡¼¥¯
Top / JSON / Json-lib¤ò»È¤¦ / JSON¤«¤éJava¤Ø¤¤¤í¤ó¤ÊÊÑ´¹

¸½ºß¤Î¥¢¥¯¥»¥¹:21575


*1 ¤À¤«¤é¥Ê¥ó¤Ê¤Î¤«¤Ï¤è¤¯Ê¬¤«¤Ã¤Æ¤Ê¤¤¤Î¤Ç¤¹¤¬(¡­§Õ`;)

¥È¥Ã¥×   ÊÔ½¸ Åà·ë º¹Ê¬ ¥Ð¥Ã¥¯¥¢¥Ã¥× źÉÕ Ê£À½ ̾Á°Êѹ¹ ¥ê¥í¡¼¥É   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS
Last-modified: 2011-10-05 (¿å) 15:23:59 (227d)