Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从字符串创建对象,javascript_Javascript_String_Parsing_Object - Fatal编程技术网

从字符串创建对象,javascript

从字符串创建对象,javascript,javascript,string,parsing,object,Javascript,String,Parsing,Object,是否可以从字符串内容创建对象 例如,我有一个字符串“{name:John}”如何简单地解析它来创建一个对象{name:'John'} 更新 不幸的是,JSON.parse对我不起作用,还可能有一些棘手的字符串(如果你使用mongodb,你知道),例如,{name:John,email:{$exists:true}} 也许还有另一种解决方案,比如mongodb查询解析器?如果您可以获得'{“name”:“John”},那么您可以将其解码为JSON。这是一种方法。 //修剪方法代码 if(type

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

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

更新

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

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

如果您可以获得
'{“name”:“John”}
,那么您可以将其解码为JSON。

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

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

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

var s = '{ "name": "John", "family": "Resig" }';
然后你可以用JSON解析它。解析:

var o = JSON.parse(s);
您可以使用对象
o

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

关于
“{name:John,family:Resig}”
?这种技术我已经在使用了,因为
“{name:John,family:Resig}”
你需要在
之前拆分它,但是在我的例子中可能有更复杂的技术,比如
{name:John email:{$exists:true}
不幸的是,我不能确定它是否是正确的JSON,字符串可能是这样的
{data:$exists}
,似乎只有拆分和切片才可能help@Kosmetika如何生成JSON?所有服务器端语言都能够生成有效的JSON字符串。它不是JSON,而是用户输入的简单字符串shell@Kosmetika我认为这不是一个正确的方法。假设用户想要这样的东西:
{“fullname”:“Resig,John:jquerycreator”}
(一个有一对的对象)。必须如何输入<代码>{fullname:Resig,John:jquerycreator}(一个有两对的对象)?是的,听起来不太好。。在理想情况下,它可以像{fullname:“Resig,John:jquerycreator”}一样键入..为什么使用这种格式?这些字符串从哪里来?用户将它们放入shell中