Rumah > pembangunan bahagian belakang > tutorial php > php 解析HTML post过来的json字符串,该怎么解决

php 解析HTML post过来的json字符串,该怎么解决

WBOY
Lepaskan: 2016-06-13 12:01:33
asal
1300 orang telah melayarinya

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 />
Salin selepas log masuk

php里获取到的字符串是:

[{\\"table\\":\\"a\\",\\"field\\":\\"value\\",\\"max\\":60,\\"min\\":null}]<br />
Salin selepas log masuk

对字符串处理
<br />$json_string=$_POST['json'];<br />$json=htmlspecialchars_decode($json_string);<br />print_r(json_decode($json));//结果是空的<br />
Salin selepas log masuk


换一下
<br />$json=stripslashes(htmlspecialchars_decode($json_string));<br />print_r(json_decode($json));//结果还是空的<br />
Salin selepas log masuk


再改一下
<br />$json=stripslashes(stripslashes(htmlspecialchars_decode($json_string)));<br />print_r(json_decode($json));//好吧,结果还是空的<br />
Salin selepas log masuk




------解决方案--------------------
本帖最后由 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 />
Salin selepas log masuk
Array<br />(<br />    [0] => Array<br />        (<br />            [table] => a<br />            [field] => value<br />            [max] => 60<br />            [min] => <br />        )<br /><br />)<br /><br />
Salin selepas log masuk

------解决方案--------------------
$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 "
Salin selepas log masuk
";
Array
(
    [0] => Array
        (
            [table] => a
            [field] => value
            [max] => 60
            [min] => 
        )

)
------解决方案--------------------
echo base64_encode($_POST['json']);
贴出结果
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan