JSonCmp — сравниваем в JavaScript правильно

Вот JavaScript-овый объект, сериализованный в JSon: var source1 = '[{«vConfig»:{«vType»: «objectview», «serverItemType»: «TrackerObject»}}]'; А вот ещё один JavaScript-овый объект, тоже сериализованный в JSon: var source2 = '[{«vConfig»:{«serverItemType»: «TrackerObject», «vType»: «objectview»}}]'; У них одинаковая структура, одинаковые параметры, одинаковые значения в этих параметрах. По всем признакам, и в source1, и в source2 у нас одно и то же. Но интерпретатор JavaScript с нами, разумеется, не согласен. И он вполне резонно считает, что source1 и source2 — разные строки. А если мы десериализуем их обратно, то получим два object-а, которые расположены по различным адресам памяти и… тоже не равны друг другу. А если вы, впридачу, работает с Ext.js, щедро генерируете свои классы и не забываете про jSon, то может дойти до полного затмения. Как сравнить эти огромные простыни сведений о контролах, которые собираются в JSon-ы? Или разобраться древовидными объектами, где в каждое поле уже успели насоздаваться ещё какие-то подполя? Читать дальше →

© Habrahabr.ru