从字符串创建对象,javascript

Create object from a string, javascript

本文关键字:javascript 创建对象 字符串      更新时间:2023-09-26

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

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

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

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

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

 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);

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

Working jsFiddle Demo

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

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

然后你可以用JSON.parse:

解析它
var o = JSON.parse(s);

你可以使用对象o:

alert(o.name); // John
alert(o.family); // Resig