php 解析HTML post过来的json字符串
本帖最后由 asia_deng 于 2014-07-07 15:48:48 编辑 我在js里把一个json对象转为json字符串,然后放到一个隐含的input里提交到php
这是HTML的部分
<br /><br /><input type="hidden" name="epqsql" id="epqsql" value="[{"table":"epq","field":"stand4","max":60,"min":null}]"><br />
登录后复制
php里获取到的字符串是:
[{\\"table\\":\\"a\\",\\"field\\":\\"value\\",\\"max\\":60,\\"min\\":null}]<br />
登录后复制
对字符串处理
<br />$json_string=$_POST['json'];<br />$json=htmlspecialchars_decode($json_string);<br />print_r(json_decode($json));//结果是空的<br />
登录后复制
换一下
<br />$json=stripslashes(htmlspecialchars_decode($json_string));<br />print_r(json_decode($json));//结果还是空的<br />
登录后复制
再改一下
<br />$json=stripslashes(stripslashes(htmlspecialchars_decode($json_string)));<br />print_r(json_decode($json));//好吧,结果还是空的<br />
登录后复制
------解决方案--------------------本帖最后由 xuzuning 于 2014-07-07 15:57:51 编辑 也真难为你了,做那么复杂的编码处理
$s = '[{\\"table\\":\\"a\\",\\"field\\":\\"value\\",\\"max\\":60,\\"min\\":null}]';<br /><br />$s = html_entity_decode($s);<br />$s = stripslashes($s);<br /><br />print_r(json_decode($s, 1));<br />
登录后复制
Array<br />(<br /> [0] => Array<br /> (<br /> [table] => a<br /> [field] => value<br /> [max] => 60<br /> [min] => <br /> )<br /><br />)<br /><br />
登录后复制
------解决方案--------------------$str='[{\\"table\\":\\"a\\",\\"field\\":\\"value\\",\\"max\\":60,\\"min\\":null}]';<br />$new=htmlspecialchars_decode($str);<br /><br />$new=str_replace('\\','',$new);<br /><br />$new1=json_decode($new,true);<br />echo "<pre class="brush:php;toolbar:false">";<br />print_r($new1);<br />echo "
登录后复制
";
Array
(
[0] => Array
(
[table] => a
[field] => value
[max] => 60
[min] =>
)
)
------解决方案--------------------echo base64_encode($_POST['json']);
贴出结果