Le problème est que JSON comme un langage de définition de données évolué du JSON JavaScript Object Notation. Depuis Javascript prend en charge eval sur JSON, il est légitime de mettre du code JSON à l'intérieur de JSON (dans le cas d'utilisation). Si vous êtes en utilisant JSON pour transmettre les données à distance, alors je dirais que c'est une mauvaise pratique de placer des méthodes dans le JSON parce que vous ne pouvez pas avoir modélisé votre l'interaction client-serveur. Et, de plus, lorsque l'on souhaite utiliser JSON comme l'une des données de description de la langue, je dirais que vous pourriez avoir des ennuis par l'incorporation de méthodes, car certains JSON analyseurs ont été écrites avec seulement la description des données à l'esprit et ne peut pas soutenir les définitions de méthode dans la structure.
Wikipédia JSON entrée fait une bonne affaire pour ne pas y compris les méthodes en JSON, invoquant des raisons de sécurité:
Sauf si vous devez absolument faire confiance à la source du texte, et vous avez un besoin d'analyser et d'accepter un texte qui n'est pas strictement JSON conforme, vous devriez éviter de eval() et l'utilisation de JSON.parse() ou une autre JSON analyseur spécifique au lieu. Un parser JSON ne reconnaît que le JSON texte et le rejet d'un autre texte, qui peut contenir du JavaScript malveillant. Dans les navigateurs qui fournissent native prise en charge de JSON, JSON analyseurs sont aussi beaucoup plus rapide que la fonction eval. Il est prévu que le natif de support JSON sera inclus dans le prochain standard ECMAScript.