2012-07-12 232 views
0

我试图将通用类型的映射和其中包含的另一个映射转换为JSON对象并将其发送给UI,但我只获取父映射,它内部的映射即将到来作为字符串。映射到json对象

例,

 JSONObject obj = new JSONObject(); 
     Map parent = new HashMap(); 
     parent.put("key1", "value1"); 
     Map child = new HashMap(); 
     child.put("childKey", "childValue"); 
     parent.put("map1", child); 
     obj.put("result", parent); 
     return obj.toString(); 

请忽略语法错误。上面的代码给了我父母的地图正确是

父[键1] - 值1

父[MAP1] - 孩子

,但是当我看到孩子了其作为字符串如儿童未来 - {childkey = childvalue }

我怎样才能有数组或像父地图的子地图呢?

+0

你必须重新解析才能得到孩子在地图 – mulax 2012-07-12 19:10:19

+0

重分析?分别发送父母和孩子? – Mojoy 2012-07-12 19:13:23

+0

当你从父母的地图从JSON,孩子仍然是JSON。如果我明白你的问题 – mulax 2012-07-12 19:22:18

回答

0

只是想到这里,但你可能想利用Jackson JSON库。他们的对象映射器和注释极大地简化了你处理JSON的方式,并且将所有东西从你的POJO中分离出来。

0

在JSON中,顶级对象没有被命名(因为它不是另一个对象的属性)。因此,您只需添加另一个更高级别的对象(或数组)即可查看已命名的父级(作为顶级对象的属性)。但是你生成的JSON已经是有效的,并且已经是我期望看到的JavaScript消费者。