Почему он возвращает последний элемент только в JSONiq?

Изображения моего JSON и запрос

введите описание изображения здесь

Код Json

{
    "reading_list": {
        "book": {
            "name": "Fifty shades of grey",
            "author": "E.L James",
            "date": "March 2015",
            "comment": "did not like it very much"
        },
        "book": {
            "name": "The grass is singing",
            "author": "Doris Lessing",
            "date": "April 2015",
            "comment": "enjoyed it quite a bit"
        },
        "book": {
            "name": "A short history of nearly everything",
            "author": "Bill Bryson",
            "date": "June 2015",
            "comment": "very informative"
        },
        "book": {
            "name": "JSON in 24 hours",
            "author": "Peter Settler",
            "date": "in the year",
            "comment": "read for work"
        },
        "book": {
            "name": "Miss Smilla's feeling for snow",
            "author": "Peter Hoeg's",
            "date": "in the year",
            "comment": "read for entertainment"
        }
    }
}

Код запроса:

for $x in reading_list
return $x("book")/name

как вы можете видеть по ссылке, я ожидал получить все названия книг, но получаю только:

Miss Smilla's feeling for snow.
The output should be like this:
Fifty shades of grey
A short history of nearly everything
The grass is singing
JSON in 24 hours
Miss Smilla's feeling for snow

Что не так?.. Пожалуйста, помогите

1 ответ

В JSONiq Data Model (JDM) дублирующиеся ключи (например, книга в вашем примере) не допускаются. Кажется, что эта реализация не выдает ошибку, а берет последнюю пару с этим ключом.

В оригинальном JSON RFC это ограничение СЛЕДУЕТ. Вы можете повысить совместимость, моделируя список чтения как массив книг.

Другие вопросы по тегам