[英]how to convert jsonNode to BasicDbList
I have a JsonNode
object and I need to convert that to a BasicDBList
of mongoDb. 我有一个
JsonNode
对象,需要将其转换为BasicDBList
的BasicDBList。 How do I do that? 我怎么做? I need to get the
JsonNode
as a list for my further iterations. 我需要将
JsonNode
作为列表进行进一步的迭代。 Here is my JsonNode
: 这是我的
JsonNode
:
JsonNode rnode={"question":"q0009_d2","answers[{"answers":"\"Good\""}],"ranking":"false","other":""}
Here's my attempt at converting it: 这是我尝试进行的转换:
BasicDBList newlist=new BasicDBList();
newlist.add(rnode);
But the newlist
was empty: 但
newlist
是空的:
o/p: newlist is `[ [ [ ] , [ [ [ ]]] , [ ] , [ ]]]`
How do I do the conversion? 我如何进行转换?
I am not work more on JsonNode
but following simple java code will help you. 我不在
JsonNode
上工作,但遵循简单的Java代码将为您提供帮助。
import java.net.UnknownHostException;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.util.JSON;
and java code as below 和java代码如下
try {
Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("yourdb");
DBCollection collection = db.getCollection("dummyColl");
// convert JSON to DBObject directly
DBObject dbObject = (DBObject) JSON
.parse("{'name':'abc', 'age':12}");
collection.insert(dbObject);
DBCursor cursorDoc = collection.find();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
In above code com.mongodb.util.JSON;
在上面的代码中
com.mongodb.util.JSON;
parse given string to JSON and convert to DBObject
, then it insert to collection 将给定的字符串解析为JSON并转换为
DBObject
,然后将其插入到collection中
Assuming you have an array of such json nodes, The below code sample may help you else it does not make sense to convert an object into a list 假设您有一个这样的json节点数组,下面的代码示例可能会帮助您,否则将对象转换为列表没有任何意义
JsonNode root = rnode; //yourJsonNode
Iterator<JsonNode> iter = root.getElements();
while ( iter.hasNext() ){
//create basicDB objects
// add them to basicDBList
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.