将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
那就是它。谢谢