閲覧数:655
投稿日: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