在couchbase中插入和检索订单

问题描述 投票:1回答:3

有没有办法可以保持json文档的插入和检索顺序相同。例如。

config : {
“x” : {
“p” : 2,
“a” : 3
},
“a” : {
“b” = 23,
“l” = 56
}
}

当我在doc上面存储并尝试检索它时,元素的顺序会发生变化。我希望订单保持原样。

我理解它的一个对象,并不保证订购。但我的用例是将此文档转换为xml并加载到系统上。如果排序不同,则xml加载失败。

注意:我不想在db中推送xml。

json xml sorting couchbase
3个回答
1
投票

如果您使用的是N1QL,则每个JSON对象中的字段将始终按字母顺序生成。这就是序列化代码的工作原理。在查询引擎本身无法更改它。


1
投票

使用Couchbase Java SDK,您可以使用RawJsonDocument以字符串形式访问原始未处理的文档内容,如下所示:

String docId = ...;
RawJsonDocument rawDoc = bucket.get(RawJsonDocument.create(docId));
String json = rawDoc.content(); // Unprocessed. Parse it however you want.

0
投票

这可能取决于您如何将JSON转换为XML。例如,如果涉及Newtonsoft,您可以使用JsonProperty attribute并指定订单。

© www.soinside.com 2019 - 2024. All rights reserved.