Мова запиту для JSON


11

У мене є сервер, який повертає дуже велике повідомлення JSON, і моя клієнтська програма залежить лише від частини цієї відповіді. Клієнтській програмі потрібно перевірити, чи існує властивість "xyz" у повідомленні JSON та залежно від результату запустити певний користувальницький регістр.

Для цієї вимоги перетворення всього повідомлення JSON в об’єкт звучить для мене трохи дорого, і звідси це питання.

Чи існує стандартна мова запитів JSON, така як у нас для XML? Якщо так, то найкраще знайте реалізацію цієї мови запитів у Java.

FYI: Зміна або додавання нової послуги на стороні сервера - це не варіант.


У javascript, якщо відповідь надсилається з правильним заголовком (application / json), відповідь JSON буде об’єктом javascript. Це ти просиш? Я не впевнений у вашому питанні.
Флоріан Маргаїн

@Florian Я згоден, дозвольте мені оновити своє запитання і зробити його специфічним для java.
Ферма

Тоді я думаю, ви спробували json.org/java ? :-)
Флоріан Маргайн

Мені було цікаво те саме. Кожна бібліотека Java для JSON, яку я бачив, здається жахливо громіздкою; чи немає нічого за рядками JSON.getString(json_string, 'foo.22.bar')(для, властивість "bar" у 22 елементі списку у властивості "foo", яка містить рядок)
Izkata

Або щоб уникнути розбору кожного разу, JSON baz = new JSON(json_string); baz.getString('foo.22.bar');наприклад
Ізката

Відповіді:


6

Чому б просто не використовувати JavaScript? (Зрештою, JSON - нотація об'єкта Javascript). Тоді вам не доведеться розбирати або маніпулювати JSON.

EDIT Подивіться на http://json.org/java

Для цієї вимоги перетворення всього повідомлення JSON в об’єкт звучить для мене трохи дорого, і звідси це питання.

Це не так. Десеріалізація об’єкта коштує дешево (стенд перевірити його самостійно). Розмова із зовнішнім API буде на порядок дорожчою. Ви можете безпосередньо маніпулювати рядком, який може бути трохи швидшим, але ви ризикуєте помилками, зменшувати розширюваність та зменшувати читабельність. Висока вартість.


Я оновив своє запитання і зробив його специфічним для Java.
хутір

Використання javascript - це не варіант, оскільки клієнтська програма працює на Headunit, який має лише підтримку LWUIT
Farm

2

"Міряйте, не здогадуйтесь". Так, серіалізація та десеріалізація об'єктів є теоретично дорогою, але які цілі ефективності вашої програми? Якщо серіалізація об'єкта (де) не підштовхує вашу ефективність до неприйнятних рівнів, тоді не турбуйтеся про це :-). Головне, звичайно, знати, якими повинні бути межі продуктивності (наприклад, час відповіді для користувача за 2 секунди) та вимірювати кожну частину циклу запит / відповідь.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.