繁体   English   中英

org.bson.Document转换为json-泰国字符问题

[英]org.bson.Document to json- thai character issue

MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
MongoDatabase database = mongoClient.getDatabase("mydb");
MongoCollection<Document> collection = database.getCollection("testCollection");

Document document= Document.parse("{'author' : 'Punama','answer' : 'อาม่า(เจ้าของ)'}");

collection.insertOne(document);         
System.out.println("Record inserted.....");         

JsonWriterSettings settings = JsonWriterSettings.builder().outputMode(JsonMode.SHELL).build();
FindIterable<Document> findIterable=collection.find();

for(Document doc: findIterable){
    System.out.println(doc.toJson(settings));
}

这是doc.toJson(settings)的输出:

{ "_id" : ObjectId("5bc70756d47228167ce6f2a1"), "author" : "Punama", "answer" : "อาม\u0e48า(เจ\u0e49าของ)" }

预期产量:

{ "_id" : ObjectId("5bc70756d47228167ce6f2a1"), "author" : "Punama", "answer" : "อาม่า(เจ้าของ)" }

请帮我做到这一点。 toJson(-)未打印准确的输出。 它将打印ASCII码。 需要类似“อาม่า(เจ้าของ)”的输出。

下面的代码解决了我的问题,但是此传统方法(JSONSerializers.getLegacy())在mongo java驱动程序3.8版本中已弃用。

字符串afterSerialization = JSONSerializers.getLegacy()。serialize(doc);

很抱歉,后期的答案。 我们必须使用org.json.jar摆脱泰国字符问题。

while (cursor.hasNext()) {

        Document d=cursor.next();                   
        JSONObject object=new JSONObject(d); //import org.json.JSONObject;
        System.out.println(object.toString());
    }

这将提供适当的输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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