JSONデータ変換

2864 ワード

例:導入パッケージ(struts-2.1.8.1libより引用)
  json-lib-2.1.jar commons-collections-3.2.jar commons-beanutils-1.7.0.jar commons-lang-2.3.jar commons-logging-1.0.4.jar ezmorph-1.0.3.jar public class ActionName { private String namespace; private String actionname; get、set  } public class Authorization{ private int category; private List<ActionName> list; get、set  } 

json-lib-2.1.jarcommons-collections-3.2.jarcommons-beanutils-1.7.0.jarcommons-lang-2.3.jarcommons-logging-1.0.4.jarezmorph-1.0.3.jarpublic class ActionName{private String namespace;private String actionname;get、set略}?public class Authorization{private int category;private Listlist;get、set略}?
1)オブジェクトをjson文字列に変換
public class PojoToJson {public static void main(String[] args) {ActionName o=new ActionName();o.setActionname("test");o.setNamespace("/space");JSONObject jo = JSONObject.fromObject(o);System.err.println(jo.toString());?ActionName o1=new ActionName();o1.setActionname("test1");o1.setNamespace("/space");List list=new ArrayList();list.add(o);list.add(o1);Authorization a=new Authorization();a.setCategory(1);a.setList(list);JSONObject json = JSONObject.fromObject(a);System.err.println(json.toString());}}
2)json文字列をオブジェクトに変換
?
authorization.txt内容
authorization=[{"category":"1","list":[{"namespace":"/user","actionname"//必要転義:"login"},{"namespace":"/user","actionname":"register"}},{"category":"2","list":[{namespace":"/user","actionname":"listUser","actionname":"listUser"},{"namespace":"/user","user","actionname":":"listUser"},{"namespace":":":":"/user",""user",""Actionname":"updateUser"}]public class JsonToPojo{public static void main(String[]args)throws IOException{
Properties properties = new Properties();properties.load(new FileInputStream("E:\\authorization.txt"));String authorization=(String) properties.get("authorization");System.err.println("jsonString:"+authorization);
JSONArray ja = JSONArray.fromObject(authorization);Map>classMap = new HashMap>();classMap.put("list", ActionName.class);Listlist = JSONArray.toList(ja, Authorization.class,classMap);
for(Authorization c:list){System.err.println("category:"+c.getCategory());for(ActionName n:c.getList()){System.err.println("actionname:"+n.getActionname());System.err.println("namespace:"+n.getNamespace());}}}}