从具有特定模式PHP的字符串中删除多余的字符

时间:2016-09-20 00:55:50

标签: javascript php python json

我将数据从python函数的输出移动到php,然后将其转换为JSON并将其发送到使用AJAX调用它的javascript函数。

格式应如下所示:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>
<div></div>
<div></div>
<div></div>

现在,python通过{"data_name" : [1.02, 3.013, -24.12, 39], "data_name_2" : [-0.32151], "data_name_3" : [0.321, -21.42425, 225125.002]} 返回数据,一旦到达PHP,输出有点奇怪。由于数据已经是来自Python的json,json.dumps无法正常工作,但只是回显json数据就会产生这样的结果:

json_encode

那么我该如何做以下事情?

  1. 从字符串
  2. 的开头删除第一个"[{\"data_name\" : [[1.02], [3.013], [-24.12], [39]]}, {\"data_name_2\" : -0.32151}, {\"data_name_3\" : [[0.321], [-21.42425], [225125.002]]}, null]"
  3. 删除引号前的所有反斜杠(因此"[变为\"data_name\"
  4. 从每个字段(第一个字段除外)中删除"data_name"
  5. 对于2D数组,请删除内部}, {符号,以便[]变为[[1.02], [2.02]]
  6. 对于单个数字,请在其周围添加[1.02, 2.02],以便[]成为-0.32151
  7. 最后,当我到达[-0.32151]后,我想删除}, null]"并保持结束, null]"
  8. 我对}了解一点,但我不确定如何将其与某种形式的正则表达式合并,或者如果我需要手动循环字符串来处理每个步骤。如果有人知道如何开始,我会很感激。

1 个答案:

答案 0 :(得分:0)

我同意Sammitch的观点。

2.的快速解决方法是stripslashes

对于其余部分,您可以创建preg_replace的模式,可以正确过滤它,但为什么不只是更改python输出?