0

是否可以从字符串内容创建对象?

例如,我有一个字符串,"{ name: John }"如何简单地解析它来创建一个对象{ name: 'John' }

更新

不幸的是JSON.parse对我不起作用,也可能有一些棘手的字符串(如果你使用过你知道的 mongodb),例如{ name: John, email: { $exists: true } }

也许还有另一种解决方案,例如 mongodb 查询解析器?

4

3 回答 3

2

这是一种方法。//修剪方法的代码

 if(typeof String.prototype.trim !== 'function') {
      String.prototype.trim = function() {
        return this.replace(/^\s+|\s+$/g, ''); 
      }
    }

    var s =  "{ name: John }";
    var arr = s.substring(1,s.length-1).trim().split(':');
    var obj = {};
    obj[arr[0]]=arr[1];

    alert(obj.name);
于 2013-06-01T07:35:39.113 回答
0

如果你能得到'{"name":"John"}',那么你可以将它解码为 JSON。

于 2013-06-01T07:29:57.130 回答
0

工作 jsFiddle 演示

您的字符串必须是有效的 JSON 格式:

var s = '{ "name": "John", "family": "Resig" }';

然后你可以解析它JSON.parse

var o = JSON.parse(s);

你可以使用对象o

alert(o.name); // John
alert(o.family); // Resig
于 2013-06-01T07:40:32.170 回答