【发布时间】:2017-08-15 20:50:06
【问题描述】:
当我尝试从 mongoDB 文档中放入这个 type1 数组时,我可以通过 java 将它作为一个数组,方法是:
BasicDBList listEditionsAssets = (BasicDBList) nextAssets.get("areas");
下面是type1数组:
{
"ClientId" : "212",
"UserId" :"212",
"areas" : [
{
"Area 1" : "Chicago"
"Area 2" : "LA",
"Area 3" : "Boston"
]
}
但是,以下是我在 mongoDB 文档中的数据:
下面是'type2'数组:
{
"ClientId" : "212",
"UserId" :"212",
"areas" : ["Chicago","LA","Boston" ]
}
当我尝试使用 BasicDBList 在 java 中检索“areas”数组时,它显示为“null”。因为java把它当作字符串。当我把它当作
BasicDBObject result = (BasicDBObject) it.next();
String areas = (String) result.get("areas");
我可以读的是字符串。
那么如何将 type2 文档中的“区域”读取为 java 中的数组而不是字符串?
【问题讨论】:
-
你确定
type2.areas是一个数组吗?我已经用mongo-java-driver 3.4.2在我的本地进行了测试。它确实返回一个带有(List) dbObject.get("areas")的列表 -
我的对象 ->
{ "areas" : ["1", "2"] }和上面的结果通过列表转换得到 ->["1", "2"] -
嗨,我将 List 设为“null”。我试图将它作为字符串并显示结果.. BasicDBObject result = (BasicDBObject) it.next();字符串区域 = (result.getString("areas")); System.out.println(areas);无法猜测为什么要让 List 为空...你能建议有什么想法吗?
标签: java arrays string mongodb arraylist