Почему он возвращает последний элемент только в 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 это ограничение СЛЕДУЕТ. Вы можете повысить совместимость, моделируя список чтения как массив книг.