从 LinkedHashMap 转换为 Json 字符串

新手上路,请多包涵

我正在使用 Jongo 与 Mongo 合作,当我进行查询时,我收到了 LinkedHashMap 作为结果。

 Iterator one = (Iterator) friends.find(query).projection("{_id:0}").as(Object.class);
while (one.hasNext()) {
    LinkedHashMap data = new LinkedHashMap();
    data = (LinkedHashMap) one.next();
    String content = data.toString();
}

the problem is that if the json is {"user":"something"} content will be {user=something} , it is not a json is only toString method from HashMap

我怎样才能得到原来的 JSON

我没有 class 映射 response 并且它不是创建 map 类的解决方案,这就是我使用 Object.class. 的原因 ---

原文由 user1655510 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.2k
2 个回答

如果您可以访问某些 JSON 库,那么这似乎就是可行的方法。

如果使用 org.json 库,请使用 public JSONObject(java.util.Map map)

 String jsonString = new JSONObject(data).toString()

如果是Gson,使用@hellboy提到的 gson.toJson() 方法:

 String jsonString = new Gson().toJson(data, Map.class);

原文由 ethanbustad 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用 Google 的 Gson 库将任何对象转换为 JSON。这是将 LinkedHashMap 转换为 json 的示例 -

 Gson gson = new Gson();
String json = gson.toJson(map,LinkedHashMap.class);

原文由 hellboy 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题