Javascript 如何从字符串创建JS对象

Javascript 如何从字符串创建JS对象,javascript,arrays,json,object,Javascript,Arrays,Json,Object,我有一个字符串,其值为(根据console.log()): j:{“地址”:“北路34号”,“邮编”:“00002”,“州”:“德克萨斯州”,“市”:“达拉斯”,“国家”:“美国”} 我不知道为什么它以字母“j”开头,但我只对里面的东西感兴趣。 我尝试了JSON.parse(),但抛出了一个错误:“意外标记:'j' eval()解决方案似乎也不起作用,它抛出了“意外标记:”:“ 谢谢大家! 只需从j:中删除不知道从哪里来的代码,然后JSON.parse()就可以了。如果需要帮助,请显示更多代码

我有一个字符串,其值为(根据console.log()):

j:{“地址”:“北路34号”,“邮编”:“00002”,“州”:“德克萨斯州”,“市”:“达拉斯”,“国家”:“美国”}

我不知道为什么它以字母“j”开头,但我只对里面的东西感兴趣。 我尝试了JSON.parse(),但抛出了一个错误:“意外标记:'j'

eval()解决方案似乎也不起作用,它抛出了“意外标记:”:“


谢谢大家!

只需从
j:
中删除不知道从哪里来的代码,然后
JSON.parse()
就可以了。如果需要帮助,请显示更多代码

只需从
j:
中删除不知道从哪里来的代码,然后
JSON.parse()
就可以了。如果需要帮助,请显示更多代码

嗯。。。唯一的解释是,它不应该以
j:
开头,因为它是无效的JSON,但它确实如此(可能是因为一个bug)

通过从JSON字符串中删除无效前缀,可以轻松修复字符串以使其有效

var obj = JSON.parse(yourString.replace(/^j:/, ''));

嗯。。。唯一的解释是,它不应该以
j:
开头,因为它是无效的JSON,但它确实如此(可能是因为一个bug)

通过从JSON字符串中删除无效前缀,可以轻松修复字符串以使其有效

var obj = JSON.parse(yourString.replace(/^j:/, ''));

与plalx的答案类似,但主要垃圾并不是硬编码的:

var s = 'j:{"address":"North Road 34 ","zip":"00002 ","state":"Texas ","city":"Dallas  ","country":"US"} ';

// Strip everything up to leading "{":
var obj = JSON.parse(s.substring(s.indexOf('{')));

与plalx的答案类似,但主要垃圾并不是硬编码的:

var s = 'j:{"address":"North Road 34 ","zip":"00002 ","state":"Texas ","city":"Dallas  ","country":"US"} ';

// Strip everything up to leading "{":
var obj = JSON.parse(s.substring(s.indexOf('{')));

你可以使用这个技巧

var v="j:{"address":"North Road 34 ","zip":"00002 ","state":"Texas ","city":"Dallas  ","country":"US"}"

var rpVal=v.replace("j:","");

var yourObject=new someObject();

yourObject= eval("(" + rpVal+ ")");

这样你就能轻松实现目标。

你可以使用这个技巧

var v="j:{"address":"North Road 34 ","zip":"00002 ","state":"Texas ","city":"Dallas  ","country":"US"}"

var rpVal=v.replace("j:","");

var yourObject=new someObject();

yourObject= eval("(" + rpVal+ ")");

这样你就能轻松实现目标。

这根绳子是从哪里来的?它本身显然不是一个有效的json字符串。只需删除
j:
part…@RobG,听起来不错。如何去掉“J:”?如果所提到的字符串是常量,那么您可以简单地修改它。如果它来自外部的来源。您可以使用“substring()”甚至对其应用正则表达式。另一个选项var ns=JSON.parse(“{”+actualString+“}”);那根绳子是从哪里来的?它本身显然不是一个有效的json字符串。只需删除
j:
part…@RobG,听起来不错。如何去掉“J:”?如果所提到的字符串是常量,那么您可以简单地修改它。如果它来自外部的来源。您可以使用“substring()”甚至对其应用正则表达式。另一个选项var ns=JSON.parse(“{”+actualString+“}”);理论上,前导垃圾可能包含一个
{
,因此解决方案仍然不是泛型的。唯一的泛型解决方案是尝试从每个字符开始解析输入,直到结束,但这将是愚蠢的。理论上,前导垃圾可能包含一个
{
,因此解决方案仍然不是通用的。唯一通用的解决方案是尝试从每个字符开始解析输入,直到结束,但这将是愚蠢的。