将 Gson 的 JsonObject 保存为没有 Members 对象的纯 Json 到 mongoDB

Posted

技术标签:

【中文标题】将 Gson 的 JsonObject 保存为没有 Members 对象的纯 Json 到 mongoDB【英文标题】:Saving Gson's JsonObject to mongoDB as plain Json without Members object 【发布时间】:2018-04-27 06:27:37 【问题描述】:

我正在使用 Gson 库将 JsonString 转换为 JsonObject 并将其保存到 MongoDB。我正在使用带有 mongoDB 的 springboot 应用程序,我的预期结果是直接在数据库中保存为普通 Json 对象。

预期:

    
  "id": 1,
  "name": "FirstName",
  "data": 
    "dataArrayObject": 
      "ItemName": "Item1"
    
  

保存到数据库时,保存如下

实际:

      
  "members": 
    "id": 
      "value": 1,
      "_class": "com.google.gson.JsonPrimitive"
    
  ,
  "members": 
    "name": 
      "value": "FirstName",
      "_class": "com.google.gson.JsonPrimitive"
    
  ,
  "dataArrayObject": 
    "members": 
      "ItemName": 
        "value": "Item1",
        "_class": "com.google.gson.JsonPrimitive"
      ,
       "_class": "com.google.gson.JsonPrimitive"
    
  

【问题讨论】:

提供您的保存数据代码 mongoTemplate.insert(jsonObject, COLLECTION_NAME); 尝试保存纯 JSON 字符串 我的要求是直接在DB中保存为JSON 【参考方案1】:

你可以试试这个。在我使用toString()方法转换为字符串后,我在mongodb中得到了预期的json。

 mongoTemplate.save("collectionName", jsonObject.toString());

【讨论】:

以上是关于将 Gson 的 JsonObject 保存为没有 Members 对象的纯 Json 到 mongoDB的主要内容,如果未能解决你的问题,请参考以下文章

Gson:直接将String转换为JsonObject(无POJO)

如何将我的 JsonObject (com.google.gson.JsonObject) 转换为 GenericRecord (org.apache.avro.generic.GenericReco

如何将 LinkedTreeMap 转换为 gson JsonObject

将 JSON 字符串转换为 Gson 对象

jsonObject和JsonArray转化String

com.google.gson.JsonObject 无法转换为 com.google.gson.JsonArray