Egy string-ről legkönnyebben úgy tudjuk megállapítani, hogy JSON vagy sem, hogy megpróbáljuk átalakítani. Ha sikerült, akkor az, ellenkező esetben pedig nem, ilyen egyszerű. :)
isJSON: function () {
try {
Ext.decode(this);
return true;
} catch(e) {
return false;
}
}
});
Ext.each(list, function (str) {
console.log(str, str.isJSON());
});
Az '{a: 123}' kívül a többi elemnél ugye egyértelmű, hogy JSON-ról van-e szó, vagy sem. Ennél az elemnél a natív JSON és az eval különbsége miatt eltérő eredményt kaphatunk.