如何使用PHP过滤关注JSON?

时间:2017-07-24 16:17:06

标签: php json payment-gateway

我正在对付款网关执行查询,这是我作为回复收到的JSON的一部分:

"//{\"COLUMNS\":[\"TR_ID\",\"INV_ID_EXT\",\"CUST_ID_EXT\",\"MERCH_ID\", ... ,null,\"510510\",1,24]]}"

如何从字符串中删除" \"在真正的JSON中进行转换?

到目前为止我做了什么:

echo $JSON2 = str_replace("//","",$theString); 

我明白了:

"{\"COLUMNS\":[\"TR_ID\", ...

当我尝试str_replace("\\","",$JSON2);时,我仍然拥有"{\"COLUMNS\":[\"TR_ID\", ...

出于某种原因,我可以删除//但不能删除\

如何在没有字符循环的情况下从此字符串中删除\

2 个答案:

答案 0 :(得分:3)

您是否尝试过使用str_replacestripslashes?见https://eval.in/836989

<?php
$string="//{\"COLUMNS\":[\"TR_ID\",\"INV_ID_EXT\",\"CUST_ID_EXT\",\"MERCH_ID\", ... ,null,\"510510\",1,24]]}";

echo stripslashes(str_replace('//','',$string));
?>

N.B :这会从您的字符串中删除//\个字符,但它仍然不是有效的json。有效的json就是这样的,所以在这种情况下你还要删除字符串中的最后一个]...

{
    "COLUMNS": ["TR_ID", "INV_ID_EXT", "CUST_ID_EXT", "MERCH_ID", null, "510510", 1, 24]
}

为此:https://eval.in/837000

对于Magic Quotes问题:PHP stripslashes problem

答案 1 :(得分:0)

尝试使用stripslashes()功能

list indices must be integers, not unicode

黑色斜线作为我相信的逃避工作