$unsignedTx = array('a'=>1); $unsignedTx = stripcslashes(json_encode($unsignedTx)); $sign = 'sdjsd'; $params=['tornado',$unsignedTx,$sign]; $js = json_encode($params); $js = stripcslashes($js); echo($js); 输出结果为:["tornado","{"a":1}","sdjsd"] 如何去除{"a":1}两边的引号
时间: 2024-03-26 10:39:41 浏览: 107
在这段代码中,你的 `$unsignedTx` 已经被转换为了 JSON 格式的字符串,并且在 `$params` 数组中已经是一个字符串类型的元素。因此,当你将 `$params` 数组转换为 JSON 格式的字符串时,JSON 编码器会自动将 `$unsignedTx` 中的双引号转义为 `\"`,导致输出结果为 `["tornado","{\"a\":1}","sdjsd"]`。
如果你想要输出类似 `["tornado",{a:1},"sdjsd"]` 的结果,可以将 `$unsignedTx` 转换为一个对象,然后将对象作为 `$params` 数组的元素:
```
$unsignedTx = array('a' => 1);
$sign = 'sdjsd';
$params = ['tornado', $unsignedTx, $sign];
$js = json_encode($params, JSON_UNESCAPED_UNICODE);
echo $js;
```
在 `json_encode` 函数中,使用 `JSON_UNESCAPED_UNICODE` 标记可以保留中文字符的原始格式,并且不会将双引号转义。
阅读全文