Javascript は JSON.parse が使えるので便利ですが、古い IE にどうしても対応しなければならないなどで使えない場合は、以下のように Function で代替の処理を実装します。これはメソッドが実行できてしまいますが、この関数外に影響しないようにする設計です。
var stringify = function (_expression) {var arr = ['window', 'document', 'location', 'top', 'screen', 'frames', 'console', 'constructor', 'content', 'history', 'localStorage', 'sessionStorage', 'menuBar', 'opener', 'parent', 'self', 'sideBar', 'toolBar', 'navigator', 'indexedDB', 'external', 'applicationCache'];var exp = 'var ' + arr.join(',') + ';return ' + _expression;return (new Function(exp)).call({});};
Function は eval と違ってスコープを限定させることができるので、この中で定義された変数は関数外には影響しないようにできます。あとはグローバルオブジェクトの windows 以下が利用できなければいいので、あえて各広域変数を最初に定義しておき、無効化させてから処理します。
PHP と Python は標準であるので気にしないとして、Classic ASP の場合は以下のように実装します。
<script language="JScript" runat="server" src='json.js'></script>
json.js の中に JSON.parse を実装しておきます。