MongoDB 在转换回 Java 对象时出现“NumberLong/$numberLong”问题

2024-05-03

我有一个 json ,类似于{"Header" : {"name" : "TestData", "contactNumber" : 8019071740}}

如果我将其插入到 mongoDB 中,它将类似于

{"_id" : ObjectId("58b7e55097989619e4ddb0bb"),"Header" : {"name" : "TestData","contactNumber" : NumberLong(8019071743)}

当我读回这些数据并尝试使用 Gson 转换为 java 对象时,它会抛出异常com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected a long but was BEGIN_OBJECT at line 1 column 109 path $.Header.contactNumber

我已经发现this https://stackoverflow.com/questions/36134737/read-bson-mongodb-into-pojo-using-gson-and-typeadapter,但我想知道如果我有非常复杂的 json 结构,那么我可能需要用这种方法操作许多 json 节点。

有人对此有更好的选择吗?

Edit:1我正在阅读查询和转换 json 如下

Document MongoDocument = mycollection.find(searchCondition);
String resultJson =  MongoDocument.toJson();
Gson gson = new Gson();
Model model= gson.fromJson(resultJson, ItemList.class);

我们可以使用下面的代码:

Document doc = documentCursor.next();
JsonWriterSettings relaxed = JsonWriterSettings.builder().outputMode(JsonMode.RELAXED).build();
CustomeObject obj = gson.fromJson(doc.toJson(relaxed), CustomeObject.class);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB 在转换回 Java 对象时出现“NumberLong/$numberLong”问题 的相关文章

随机推荐