Я загружаю JSON при загрузке веб-страницы и изменен посредством действий пользователя в клиенте. Когда пользователь перемещается, хотите увидеть, изменился ли JSON или нет. Вместо сравнения значений один за другим внутри JSON является любой способ сделать хэш-строку и сравнить в целом в JavaScript?Как проверить, изменился ли JSON в Javascript?
ответ
Попробуйте использовать строгие версии данных
Ex.
JSON.stringify(orig) == JSON.stringify(current)
Примечания: в этом случае вы должны держать глубокую копию оригинального JSON или строковую версию этого, также есть возможность ложных срабатываний, так как порядок ключей может переодеться.
Для браузеров, которые не поддерживают родной JSON, вам, возможно, придется использовать библиотеку, такую как json2.
* «порядок ключей может измениться» * Я думаю, что это может произойти только в том случае, если исходный JSON генерируется где-то в другом месте, например. скрипт PHP. Вызов 'JSON.stringify' на одни и те же данные должен давать одинаковый результат каждый раз. Связано: http://stackoverflow.com/questions/8931967/is-there-a-deterministic-equivalent-of-json-stringify. Я надеюсь, что MDN относится к различиям между двигателями, тот же движок всегда должен давать одинаковый результат. –
Вы можете использовать JSON.stringify()
от json2.js
.
if (JSON.stringify(object1) == JSON.stringify(object2)) {
//magic
}
(Some browsers don't even need json2.js, as they support JSON.stringify
natively)
И есть еще один способ:
назначить два JSON к двум объектам, а и б. Теперь вы можете сравнить deep-equal
с помощью underscorejs или lodash функций.
_.isEqual(a, b)
- 1. Как проверить, изменился ли html?
- 2. Как проверить, изменился ли XmlDocument?
- 3. Как проверить, изменился ли контент txt-файла
- 4. Как проверить, изменился ли словарь базы данных?
- 5. Как проверить, изменился ли язык телефона?
- 6. Как проверить, изменился ли стиль цвета
- 7. Как проверить, изменился ли файл несущей?
- 8. Повторяя/зацикливая функцию javascript, чтобы проверить, изменился ли файл cookie
- 9. NHibernate проверить, изменился ли запрос на сохранение
- 10. Уведомлять/Проверить, изменился ли контент базы данных
- 11. Как проверить, изменился ли год в SQL Server 2008?
- 12. в Model.save(), как я могу проверить, изменился ли ImageField?
- 13. Как проверить, изменился ли элемент spinners пользователем в android?
- 14. Как узнать, изменился ли ImageView?
- 15. Как проверить, изменился ли хэш файла с помощью php
- 16. Как проверить, изменился ли размер массива с помощью цикла while?
- 17. Проверьте, изменился ли IList?
- 18. Как проверить, изменился ли модуль/класс/методы и зарегистрировать изменения?
- 19. Как проверить, изменился ли URL текущей вкладки браузера?
- 20. Как проверить, изменился ли цвет элемента при наведении курсора мыши?
- 21. Как проверить, изменился ли результат запроса с последней проверки
- 22. Как проверить, является ли ответ выборки json-объектом в javascript
- 23. JavaScript, как проверить, отсутствует ли свойство в json
- 24. Как проверить, имеет ли строка JSON значение в JavaScript?
- 25. Как проверить данные json в javascript
- 26. Узнайте, изменился ли файл.
- 27. Определить, изменился ли файл
- 28. Как определить, изменился ли файл?
- 29. Как узнать, изменился ли Ext.FormPanel
- 30. Как узнать, изменился ли ответ API?
Кто генерирует два JSON? (старый и новый) генерируются кодом JS? – xanatos
Поскольку JSON - это действительно просто строка в JS, вы можете просто сравнить финальную строку с исходной строкой. Однако, если вы разбираете JSON между ними, измените объект и затем преобразуете объект обратно в JSON, нет гарантии, что свойства будут указаны в том же порядке. Но разбор исходной строки JSON и преобразование объекта обратно в JSON с JS должен обойти эту проблему. –
@xanatos One возвращается с сервера и загружается, когда пользователь работает в приложении, JSON будет обновляться время от времени. – Nishanthan