将org.bson.Document中的任何属性转换为JSON



我有org.bson.Document对象,我需要检索一些属性并将它们转换为JSON(String)。

public String example(Document doc){
    Object obj = doc.get("key");
    // the object can be a string, long, document, arrayList...
    // I need to return a JSON String
    return obj.toString();
}

有没有什么简单的方法可以在不使用"实例"的情况下实现这一点?"get"的结果是一个对象,它可以是ArrayList、String、Long、Document。。。

编辑:到目前为止,我取得的最好成绩是这样的。。。

public String example(Document doc){
    Object obj = new JSONObject(doc.toJson()).opt("key");
    return obj!=null ? obj.toString():"";
}

它有效,但我认为它有一些开销,有更好的方法吗?

谢谢;-)

这是如何将Document转换为JSONObject:

Document doc = ...;
JSONObject object = new JSONObject(doc.get("key", Map.class));

然后你可以得到字符串:

object.toJSONString()

最新更新