【问题标题】:Converting JSON to entities and storing in mongoDB using morphia使用 morphia 将 JSON 转换为实体并存储在 mongoDB 中
【发布时间】:2013-11-01 00:05:57
【问题描述】:

我有一个从客户端(浏览器)发送的 JSON 字符串。我想将它保存到我的 mongoDB 数据库中,该数据库已经有一些由用户定义的集合。我能够使用 Morphia 成功保存对象。但是我该怎么做如果我已经从客户端返回的 JSON 字符串要放入“bands”集合,请执行相同操作。

        Mongo mongo = new Mongo("localhost");
        Datastore datastore = new Morphia().createDatastore(mongo,
                "bandmanager");
        Band band = new Band();
        band.setName("Punjabi band");
        band.getMembers().add("Lucky1");
        band.getMembers().add("Lucky2");
        band.getMembers().add("Lucky3");
        band.getMembers().add("Lucky4");
        band.getMembers().add("Lucky5");
        band.getMembers().add("Lucky6");
        band.setGenre("Punjabi");
        datastore.save(band);

【问题讨论】:

    标签: java mongodb entity morphia nosql


    【解决方案1】:

    您是否使用@Entity("bands") 注释了乐队?我不确定你在问什么......你是在问如何将该 json 字符串转换为 Band 对象吗?如果有,请关注jackson

    【讨论】:

    • 我确实使用@Entity.SO 对Band 进行了注释。所以我在想为什么我必须解析从客户端获得的JSON,然后再将Band 对象设置为存储为JSON。希望您理解.
    • 嗯,morphia 处理 java 对象,所以如果您使用 morphia,则需要以一种或另一种方式将该 json 映射到您的 java 对象。或者,您可以获取从这些 json 文档生成的 Map 并将它们直接传递给 java 驱动程序。此时,您需要确保正确映射所有文档键并正确键入值。这可能会在执行方面“更快”,但需要更多的前期工作和维护。
    • 感谢您指导我:)。
    【解决方案2】:

    如果你已经有一个 JSON 对象,你就不需要 Morphia。您可以使用 Java 驱动程序简单地执行以下操作:

    DBObject dbObject = (DBObject) JSON.parse(yourJsonString);
    

    有关此内容的完整博客文章,请参阅 http://www.mkyong.com/mongodb/java-mongodb-convert-json-data-to-dbobject/

    PS:不要忘记清理从客户端获取的 JSON!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-14
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多