웹 페이지가로드 될 때 JSON이로드되며 클라이언트의 사용자 작업을 통해 JSON이 변경됩니다. 사용자가 멀리 이동할 때 JSON이 변경되었는지 확인하고 싶습니다. JSON 내부에서 값을 하나씩 비교하는 대신 해시 문자열을 만들고 JavaScript로 전체를 비교하는 방법은 무엇입니까?Javascript에서 JSON이 변경되었는지 확인하는 방법은 무엇입니까?
답변
데이터의 문자열 버전을 사용해보십시오.
예.
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
에서 사용할 수 있습니다.
두 객체, a와 b에 두 JSON의를 할당 :
if (JSON.stringify(object1) == JSON.stringify(object2)) {
//magic
}
(Some browsers don't even need json2.js, as they support JSON.stringify
natively)
그리고 또 다른 방법이있다. 이제 underscorejs 또는 lodash 함수를 사용하여 deep-equal
비교를 수행 할 수 있습니다.
_.isEqual(a, b)
- 1. XmlDocument가 변경되었는지 확인하는 방법은 무엇입니까?
- 2. 파일이 변경되었는지 확인하는 방법은 무엇입니까?
- 3. 사용자 역할이 변경되었는지 확인하는 방법은 무엇입니까?
- 4. 페이지에서 무엇인가가 변경되었는지 확인하는 방법은 무엇입니까?
- 5. MySQL : 셀 값이 변경되었는지 확인하는 방법은 무엇입니까?
- 6. 양식 필드 데이터가 변경되었는지 확인하는 방법은 무엇입니까?
- 7. MVVM에서 DataGrid 행이 변경되었는지 확인하는 방법은 무엇입니까?
- 8. 개체가 변경되었는지 확인하는 가장 좋은 방법은 무엇입니까?
- 9. 전화 번호가 변경되었는지 확인하는 방법은 무엇입니까?
- 10. Entity Framework 개체가 변경되었는지 확인하는 방법은 무엇입니까?
- 11. 사용자 사전의 키가 변경되었는지 확인하는 방법은 무엇입니까?
- 12. JavaScript에서 변수가로드되었는지 확인하는 방법은 무엇입니까?
- 13. 리포지토리가 변경되었는지 확인하는 명령 (
- 14. 데이터가 변경되었는지 확인하는 방법
- 15. DependencyProperty가 변경되었는지 확인하는 방법
- 16. 어셈블리가 변경되었는지 확인하는 방법
- 17. JavaScript에서 ASCII 값으로 상태를 확인하는 방법은 무엇입니까?
- 18. JavaScript에서 변수 값을 확인하는 방법은 무엇입니까?
- 19. JavaScript에서 하위 문자열을 확인하는 방법은 무엇입니까?
- 20. Javascript에서 쿠키가 설정되었는지 확인하는 방법은 무엇입니까?
- 21. JavaScript에서 보안 문자를 올바르게 확인하는 방법은 무엇입니까?
- 22. 속성 세트 중 하나가 before_save로 변경되었는지 효율적으로 확인하는 방법은 무엇입니까?
- 23. C#에서 디렉터리에 대한 액세스 권한이 변경되었는지 확인하는 방법은 무엇입니까?
- 24. 데이터베이스를 업데이트하기 전에 dto가 변경되었는지 확인하는 방법은 무엇입니까?
- 25. QObject 이름이 변경되었는지 확인하는 가장 좋은 방법은 무엇입니까
- 26. Python ftplib : 파일이 변경되었는지 확인하는 가장 좋은 방법은 무엇입니까?
- 27. 자바를 사용하여 날짜가 변경되었는지 여부를 확인하는 방법은 무엇입니까?
- 28. 복제 된 항목의 원본 항목이 변경되었는지 확인하는 방법은 무엇입니까?
- 29. 다른 프로세스를 통해 파일이 변경되었는지 확인하는 방법은 무엇입니까?
- 30. (있는 경우) (복잡한) pocomodel의 속성이 변경되었는지 확인하는 쉬운 방법은 무엇입니까?
누가 두 개의 JSON을 생성합니까? (이전과 새로운) 모두 JS 코드에 의해 생성됩니까? – xanatos
JSON은 실제로 JS의 문자열이기 때문에 최종 문자열을 원래 문자열과 간단히 비교할 수 있습니다. 그러나 사이에 JSON을 구문 분석하고 객체를 수정 한 다음 객체를 JSON으로 다시 변환하면 속성이 동일한 순서로 나열된다는 보장이 없습니다. 하지만 원본 JSON 문자열을 파싱하고 JS로 JSON으로 다시 변환하면 문제를 피할 수 있습니다. –
@xanatos 하나는 서버에서 반환되고 사용자가 앱에서 작업 할 때로드되어 JSON이 수시로 업데이트됩니다. – Nishanthan