我有一个字符串,其值为(根据console.log()):
j:{"address":"North Road 34 ","zip":"00002 ","state":"Texas ","city":"Dallas ","country":"US"}
我不知道为什么它从那封信开头,但我只对它里面的内容感兴趣。 我尝试过JSON.parse()但却抛出错误:'意外令牌:' j'。
eval()解决方案似乎也不起作用,它会引发意外的令牌:':'
谢谢!
答案 0 :(得分:3)
嗯......唯一的解释是它不应该以{{1}}开头,因为它是无效的JSON,但确实如此(可能是因为一个错误)。
您可以通过从JSON字符串中删除无效前缀来轻松修复字符串以使其有效。
j:
答案 1 :(得分:1)
与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('{')));
答案 2 :(得分:0)
只需删除不知道来自j:
的地方,然后JSON.parse()
即可。如果您需要帮助,请显示更多代码。
答案 3 :(得分:0)
你可以使用这个技巧。
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+ ")");
这样您就可以轻松实现目标。