问答一下,轻松解决,电脑应用解决专家!
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win10/Win11
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascriptLinux系统
PHP教程CSS教程XML教程

解决PHP服务端上json串中的双引号变成了"的问题

更新时间:2021-02-05 22:33 作者:佚名点击:

在进行MAC机上客户端编程时,控制台输出的json串如下:

然而将此json串传至WebServices服务端时接收到的json串却变成了如下图格式:
 

json串中的双引号变成了"的解决办法,满网都是JAVA的解决办法,这里只说PHP的解决办法。
 
首先把你出问题的字段dump出来,不要用var_dump.
 
dump($data["chosed_list"]);
 
这时候会显示你数据库中存的内容,即 [{"name":"mary","weight":"75kg"}]等类似的内容,然后直接用str_replace即可解决,如下:
 
//dump(str_replace('"','"',$data["chosed_list"]));
 
$data["chosed_list"] = str_replace('"','"',$data["chosed_list"]);
 
然后你接下来做你其他的业务逻辑吧。在这被坑了好久,特此记录下来。

方法二:eplace掉啊,传的时候用"和用"一样的,而且不会引用“内部有"这种情况,直接转就可以了。
 
 
猜测你出现这种情况的原因可能是传数据的时候,你的这个json在html的标签中,而非<script>中,一般对于html中的内容除了<script>中的变量,其它都会默认进行html编码的,以此来防止出现冲突,这种操作是正确的。假如你在服务端替换Replace可以解决,那么就建议你在replace,假如不行,就要看你json这个字符写在什么地方了,竟然让浏览器认为你的这个json是文本内容。
 
外加说一句,不要担心replace的时候会替换错,html编码的时候不会出现其它字符会编码成&quot;这种情况的,放心替换吧。
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
你可能感兴趣的内容