class A{}
class B{}
class C{
private Map<A,B> myMap;
}
class Test{
public static void main(String [] args)
{
Map classMap=new HashMap();
classMap.put("myMap","?");
C c = (C) JSONObject.toBean(jsonObject, C.class,classMap);
}
}
我使用“net.sf.json”库将json对象转换为java对象。在C类中有一个map,所以如何将它转换为Java Object。这里jsonObject是C类的json表示。 我的问题是如果java Object包含Map
,如何将json对象转换为Java Object我是初学者,任何帮助都会非常感激。
答案 0 :(得分:0)
我使用过jackson库,当json传递给java代码时,如果要将json解析为java对象,你需要有一个包含json字符串中所有属性的类
例如:
jsonString=
{
'firstname':'json',
'lastname':'jack'
}
将等同于包含属性
的java类class A {
String firstname;
String lastname;
}
所以如果你接受来自前端的字符串作为A类的对象就可以了
像
public void (A objectofA){
}
你从前端调用这个方法并使用json库传递一个json字符串它会起作用并且对你的工作有信心。
答案 1 :(得分:0)
我不知道如何在&#34; net.sf.json&#34; 试着看看序列化在&#34; net.sf.json&#34;中是如何工作的。也许你可以从那里出发。
这是使用杰克逊的方式,(其中一位评论者试图向您解释使用此方法)
//you need to import:
//import org.codehaus.jackson.map.ObjectMapper;
ObjectMapper mapper = new ObjectMapper();
mapper.writeValueAsString(c) //--> This gives Json String
答案 2 :(得分:0)
我认为这不起作用,因为JSON不能将任意对象表示为地图中的键。在JSON中,键必须是字符串。因此,在您的示例中,只有在A为String时,Map才会起作用。
然后你可以说:
classMap.put("myMap",B.class);