Порядок вставки и поиска в базе - PullRequest
0 голосов
/ 18 февраля 2019

Есть ли способ сохранить порядок вставки и получения для документа json?например.

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

Когда я сохраняю выше документа и пытаюсь получить то же самое, порядок элементов меняется.Я хочу, чтобы заказ оставался как есть.

Я понимаю, что это объект, и нет никаких гарантий для заказа.Но мой вариант использования - взять этот документ и скрыть его в XML и загрузить в систему.Если порядок не совпадает, загрузка XML завершается неудачно.

Примечание. Я не хочу вставлять XML в дБ.

Ответы [ 3 ]

0 голосов
/ 18 февраля 2019

Если вы используете N1QL, поля, которые вы получаете в каждом объекте JSON, всегда будут создаваться в алфавитном порядке.Вот как работает код сериализации.Нет способа изменить его в самом обработчике запросов.

0 голосов
/ 25 февраля 2019

С помощью Couchbase Java SDK вы можете получить доступ к необработанному необработанному содержимому документа в виде строки, используя RawJsonDocument, например:

String docId = ...;
RawJsonDocument rawDoc = bucket.get(RawJsonDocument.create(docId));
String json = rawDoc.content(); // Unprocessed. Parse it however you want.
0 голосов
/ 18 февраля 2019

Это, вероятно, будет зависеть от того, как вы конвертируете JSON в XML.Например, если задействован Newtonsoft, вы можете использовать атрибут JsonProperty и указать порядок.

...