use*_*510 9 java json linkedhashmap mongodb
我正在使用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();
}
Run Code Online (Sandbox Code Playgroud)
问题是如果json是{"user":"something"}内容将是{user = something},那么json只是来自HashMap的toString方法.
我怎么能得到原始的JSON?
我没有一个类映射响应,它不是一个解决方案创建一个map类,这就是我使用Object.class的原因.
eth*_*tad 17
如果您可以访问某些JSON库,那么这似乎就是这样.
如果使用org.json库,请使用public JSONObject(java.util.Map map):
String jsonString = new JSONObject(data).toString()
Run Code Online (Sandbox Code Playgroud)
如果是Gson,请使用gson.toJson()@hellboy提到的方法:
String jsonString = new Gson().toJson(data, Map.class);
Run Code Online (Sandbox Code Playgroud)
您可以使用Google的Gson库将任何对象转换为JSON.这是一个将LinkedHashMap转换为json的示例 -
Gson gson = new Gson();
String json = gson.toJson(map,LinkedHashMap.class);
Run Code Online (Sandbox Code Playgroud)