将Java对象转换为Json,反之亦然?

我知道JSON对象只不过是String

我的问题是我有一个对象Map,我想将其转换为Json格式。

示例:

 Java Class -> Class Person{ private String name; private String password; private int number; } Java list -> Map<List,List> map=new HashMap<List,List>(); ..and map has Some data filled in it. 

我想将该列表转换为

  Json Format? 

我怎么能实现它? 因为我想通过HttpClient发送它…如果不是另一种替代方式呢?

据我所知,有Gson API可用,但我不知道如何使用它或以其他有效的方式。

谢谢

不确定Gson的问题是什么。 从文档 :

 BagOfPrimitives obj = new BagOfPrimitives(); Gson gson = new Gson(); String json = gson.toJson(obj); 

 BagOfPrimitives obj2 = gson.fromJson(json, BagOfPrimitives.class); 

该对象(顾名思义)由原语组成。 然而,Gson将轻松处理对象,对象集合等。使用generics等时,生活会变得复杂一点,但对于上面的例子,我希望Gson能够轻松地处理。

使用Gson在客户端使用Gson转换为Json。

发送字符串数组。

  String[] subscriberArray = new String[]{"eee", "bbb"}; Gson gson = new Gson(); String recipientInfoStringFormat = gson.toJson(subscriberArray); 

发送用户定义类型的数组。

  RecipientInfo[] recipientInfos = new RecipientInfo[1]; RecipientInfo ri = new RecipientInfo(); ri.setA(1); ri.setB("ss"); recipientInfos.add(ri); Gson gson = new Gson(); String recipientInfoStringFormat = gson.toJson(recipientInfos); 

在服务器端使用Gson读取数据。

对于原始类型。

  String subscriberArrayParam = req.getParameter("subscriberArrayParam"); Gson gson = new Gson(); String[] subscriberArray = gson.fromJson(subscriberArrayParam, String[].class); for (String str : subscriberArray) { System.out.println("qq :"+str); } 

对于用户定义的对象

  String recipientInfos = req.getParameter("recipientInfoStringFormat"); Gson gson = new Gson(); RecipientInfo[] ri = gson.fromJson(recipientInfos, RecipientInfo[].class); 

你也可以使用jackson。

  Person person= new Person(); ObjectMapper mapper = new ObjectMapper(); try { // convert personobject to json string, and save to a file mapper.writeValue(new File("c:\\person.json"), person); // display to console System.out.println(mapper.writeValueAsString(person)); } catch (Exception e) { e.printStackTrace(); } 

反之亦然

  ObjectMapper mapper = new ObjectMapper(); try { // read from file, convert it to user class Person person= mapper.readValue(new File("c:\\person.json"), Person.class); // display to console System.out.println(person); } catch (Exception e) { e.printStackTrace(); } 

使用jackson将此依赖项添加到您的POM.xml

   codehaus http://repository.codehaus.org/org/codehaus     org.codehaus.jackson jackson-mapper-asl 1.8.5   

我得到了答案,但感谢您的回复。

  Map> map=new HashMap>(); //adding some data Gson gson=new Gson(); String mapJsonStr=gson.toJson(map); //mapJsonStr : is my map's JSon Strin 

反向

  TypeToken>> token = new TypeToken>>(){}; Map> map_new=new HashMap>(); map_new=gson.fromJson(mapJsonStr,token.getType()); //origian map // map_new is my Map get from map's Json String 

那就是它。谢谢