閲覧数:557
投稿日:2018-07-13
更新日:2018-07-13
json 文字列を eval 関数(セキュリティリスクあり)を使ってオブジェクトへ変換
コード
let str = '{"ary":[0,1,2],"obj1":{"a":3,"b":4,"c":5}}';//JSON文字列 //let str = '{ary:[0,1,2],obj1:{"a":0,"b":1,"c":2}}';//JSON文字列ではない。evalしても、JavaScriptオブジェクトとして、アクセスできない //let str = {"ary":[0,1,2],"obj1":{"a":0,"b":1,"c":2}};//JavaScriptオブジェクト。evalするとエラー //let str = {ary:[0,1,2],obj1:{"a":0,"b":1,"c":2}};//JavaScriptオブジェクト。evalするとエラー let obj; eval("obj = " + str);//obj=eval( '(' + str + ')' );でもO.K. console.log(str); //{"ary":[0,1,2],"obj1":{"a":3,"b":4,"c":5}} console.log(obj); //{ary: Array(3), obj1: {…}} console.log(str.ary);//undefined。JSON文字列へはアクセス不可 console.log(obj.ary); //[0, 1, 2] console.log(obj.ary[1]); //1 console.log(obj.obj1); //{a: 3, b: 4, c: 5} console.log(obj.obj1.a); //3 console.log(obj.obj1.b); //4
結果
{"ary":[0,1,2],"obj1":{"a":3,"b":4,"c":5}} {ary: Array(3), obj1: {…}} undefined [0, 1, 2] 1 {a: 3, b: 4, c: 5} 3 4