【问题标题】:org.bson.Document to json- thai character issueorg.bson.Document 到 json- 泰语字符问题
【发布时间】:2018-10-17 10:42:12
【问题描述】:
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 driver 3.8 版本中被弃用了。

String afterSerialization=JSONSerializers.getLegacy().serialize(doc);

【问题讨论】:

标签: java mongodb bson mongo-java mongo-java-driver


【解决方案1】:

抱歉,回复晚了。 我们必须使用 org.json.jar 来摆脱泰语字符问题。

while (cursor.hasNext()) {

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

这将给出正确的输出。

【讨论】:

    猜你喜欢
    • 2015-10-13
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 2015-04-30
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多