Как найти и обновить JsonObject в JsonArray эффективным способом? - PullRequest
0 голосов
/ 23 декабря 2009

JsonArray-Пример:

   [
    {"name":"table","type":"table","reportId":7,"componentId":12,"width":0,"height":0,"dataType":"DEFAULT"},
    {"name":"chart","type":"chart","reportId":7,"componentId":13,"width":0,"height":0,"dataType":"DEFAULT"}
    ]

Мне нужно выполнить поиск JsonObject с помощью ключа (имя, тип), если существует jsonObject с ключом, который хочет обновить или удалить jsonObject из массива.

** Нормальное решение: ** итерируйте каждый JsonObject индивидуально, найдите ключ и выполните операцию.
Постскриптум Я хочу закодировать всю эту логику в java, а не в javascript.

Ответы [ 2 ]

3 голосов
/ 26 октября 2010

Вы можете использовать библиотеку " LINQ для JavaScript ". Очень полезная библиотека. Например. мы можем обновить как ..

Enumerable.From(JsonArray).Where("$.componentId == 12").First().name= "tableName";
0 голосов
/ 23 декабря 2009

Ваше решение хорошее (n сложность). Единственный способ оптимизации, который я вижу, состоит в том, чтобы отсортировать список (я имею в виду упорядочить его по имени и типу, если вы загружаете его из базы данных, а не сортируете его в Java), чтобы вы знали, что знаете, когда нужно прекратить поиск, прежде чем переходить к конец списка. Я не уверен, имеет ли смысл алгоритм двоичного поиска для двух ключевых значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...