简体   繁体   English

如何将jsonNode转换为BasicDbList

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM