我在stringyfing一个对象,比如{'foo': 'bar'}

如何将字符串转换回对象?


当前回答

看看这个。 http://jsfiddle.net/LD55x/

代码:

var myobj = {};
myobj.name="javascriptisawesome";
myobj.age=25;
myobj.mobile=123456789;
debugger;
var str = JSON.stringify(myobj);
alert(str);
var obj = JSON.parse(str);
alert(obj);

其他回答

你需要JSON.parse()有效的JSON字符串。

Var STR = '{"hello":"world"}'; 尝试{ var obj = JSON.parse(str);//这是如何将字符串解析为JSON的 document.body.innerHTML += obj.hello; } catch (ex) { console.error (ex); }

看看这个。 http://jsfiddle.net/LD55x/

代码:

var myobj = {};
myobj.name="javascriptisawesome";
myobj.age=25;
myobj.mobile=123456789;
debugger;
var str = JSON.stringify(myobj);
alert(str);
var obj = JSON.parse(str);
alert(obj);

http://jsbin.com/tidob/1/edit?js,console,output

原生JSON对象包括两个关键方法。

1. JSON.parse()
2. JSON.stringify() 

JSON.parse()方法解析JSON字符串——即重构原始JavaScript对象 var jsObject = JSON.parse(jsonString); JSON.stringify()方法接受一个JavaScript对象并返回其等效的JSON对象。 var jsonString = JSON.stringify(jsObject);

JSON。parse是JSON.stringify的反义词。

那么这个部分解呢?

我想存储(使用Config节点)一个全局bigobj,与数据+方法(作为导入外部库的替代方案),在我的流的许多函数节点中使用:

很奇怪,但很有效: 全局变量'bigobj':

{
some[]more[]{dx:"here"} , // array of objects with  array of objects. The 'Config' node requires JSON.
.....
 "get_dx": "function( d,p) {  return this.some[d].more[p].dx; }"  // test function
}

例如,一个函数....的JSON版本(都在一行中:()

使用: 在函数节点内部:

var bigO = global.get("bigobj");

function callJSONMethod(obj, fname, a, b, c, d){
    // see: https://stackoverflow.com/questions/49125059/how-to-pass-parameters-to-an-eval-based-function-injavascript
var wrap = s => "{ return " + obj[fname] + " };" //return the block having function expression
var func = new Function(wrap(obj[fname]));
return func.call( null ).call( obj, a, b, c, d); //invoke the function using arguments
}

msg.payload =callJSONMethod(bigO, "get_dx", 2, 2); 
return msg:

还“这里”,不信!

即我必须使用bigobj.....将函数callJSONMethod()添加到任何函数块 也许可以接受。

致以最亲切的问候