google的GSON
之前用的都是Struts2自带的JSON结合Jquery来用,从来没自己做过Object-JSon的转换,刚才大概看了一眼google code上的GSON,看到几个比较有用的类,写出来,免得周一用的时候忘了
经过昨天的使用,发现一些问题,写出来分享下,之前有很多的问题,免得被别人看见误人子弟
我的需求:
我用Spring整合的JSBC从数据库中读出的数据是List<Map<String, Object>>形式,其中有些字段是没有用的
把这些list中的map数据变成json串 ,{"name":"张三","value":"哇咔咔"},然后存储,读取的时候, 再由json串,转换为Object(其实也不是Object,是从json中直接取出要的值,就像map一样)
首先
map 转换为 String
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("name", "xxx");
jsonObject.addProperty("value", "xxx");
Gson gson = new Gson();
String s = gson.toJson(jsonObject);
name 和 value 还有xxx可以从map中遍历而来
然后 string 转化为 map形式
String s = "{\"name\":\"xiaolin\",\"value\":\"xxx\"}";
JsonParser jp = new JsonParser(); JsonObject jo = (JsonObject)jp.parse(s); System.out.println(jo.get("name").getAsString());
其中遇到的问题就是 取出的值 如果直接用 JsonObject.toSring或者jo.get("name").toString的话,取出的值会有双引号,直接getAsString就没有双引号啦
ok