[英]convert json object into java object
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类中有一个映射,所以如何将它转换为Java Object。 这里jsonObject是类C的json表示形式。我的问题是,如果java对象包含Map,如何将json对象转换为Java Object?
我是初学者,任何帮助都会非常感激。
我使用过杰克逊库,并且当将json传递给java代码时,如果您要将json解析为java对象,则需要具有一个包含json字符串中存在的所有属性的类。
例如:
jsonString=
{
'firstname':'json',
'lastname':'jack'
}
将等同于包含属性as的java类
class A {
String firstname;
String lastname;
}
因此,如果您接受来自前端的字符串作为A类的对象,它就可以工作
喜欢
public void (A objectofA){
}
然后从前端调用此方法,并使用json库传递json字符串,它将起作用并且对您的工作充满信心。
我不知道如何在“net.sf.json”中执行此操作尝试查看序列化在“net.sf.json”中的工作原理。 可能您可以从那里去。
这是使用杰克逊的方式,(其中一位评论者试图向您解释使用此方法的方法)
//you need to import:
//import org.codehaus.jackson.map.ObjectMapper;
ObjectMapper mapper = new ObjectMapper();
mapper.writeValueAsString(c) //--> This gives Json String
我认为这行不通,因为JSON无法将任意对象表示为地图中的键。 在JSON中,键必须是字符串。 因此,在您的示例中,Map仅在A为字符串的情况下才有效。
然后你可以说:
classMap.put("myMap",B.class);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.