从JSON编码的字符串中去除引号

3

我目前有一个由数组输入值生成的JSON编码字符串,如下所示 -

"["{value: 97049}","{value: 84866}","{value: 39402}","{value: 30250}","{value: 33363}"]"

我需要将它转换成以下格式:

"[{value: 97049},{value: 84866},{value: 39402},{value: 30250},{value: 33363}]"

感谢您的选择。

1
这两个都不是JSON,也没有包含JSON。(属性名称必须用引号括起来) - SLaks
第一个例子中的字符串是实际字符吗?完成后,您需要结果周围有引号吗?您想要JavaScript或PHP代码吗? - Ted Hopp
我怀疑他发布的内容就是 console.log() 显示的内容。它只是在字符串周围添加引号,而不像在代码中使用字符串字面量时需要转义嵌入的引号。 - Barmar
嗨,第一个例子是一个 var_dump 从一个 PHP 数组中,我已经使用了 json_encode。抱歉让这一切变得相当模糊,因为我是自学的,感到困惑。 - user3311154
嗨,我已经解决了。感谢你们的所有建议! - user3311154
4个回答

3
$input = $json_var;

$input = str_replace( '"', '', $input ); // strip em
$input = '"' . $input . '"'; // wrap back around

2

JS:

var json_array = JSON.parse(json_string);
for (var i = 0; i < json_array.length; i++) {
    json_array[i] = JSON.parse(json_array[i];
}

PHP:

$json_array = json_decode($json_string);
$json_array = array_map('json_decode', $json_array);

最好在源头解决这个问题。如果它应该是一个对象数组,请在将其添加到数组之前不要引用每个数组元素。


你的回答很好,但是用JS写的。难道OP不是在寻找PHP代码吗?还是我误解了? - Patrick Moore
标签:javascriptjsonstringphp - 模糊不清 - Axel Amthor
你真的认为使用 JSON.parse 函数能够成功解析这个输入吗? - Ted Hopp
请查看我上面发布的评论。 - Barmar
嗨,我在寻找PHP相关的内容。抱歉表述不够清晰,我对这些还比较新。 - user3311154
添加了 PHP 解决方案。基本上,只需使用 json_decode 而不是 JSON.parse 即可。 - Barmar

0
var myQuotedJson = '"["{value: 97049}","{value: 84866}","{value: 39402}","{value: 30250}","{value: 33363}"]"';

var myUnquotedJson = myQuotedJson.replace(/"/, '');

0
你可以这样做:
var input = '"["{value: 97049}","{value: 84866}","{value: 39402}","{value: 30250}","{value: 33363}"]"';
 output = '"' + input.replace('"','') + '"';
 //Alerts your output
 alert(output );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接