将json对象转换为java对象

时间:2015-02-11 07:24:02

标签: java json 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类中有一个map,所以如何将它转换为Java Object。这里jsonObject是C类的json表示。 我的问题是如果java Object包含Map

,如何将json对象转换为Java Object

我是初学者,任何帮助都会非常感激。

3 个答案:

答案 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);