我有这样的网址,我希望获得变量的价值" json"但我并没有得到价值和&参数来自"印地语:L& W第3首诗3次。 Soc Science:L& W hard words 5次。"。如何正确获取json的值?
注意:我从app端获得了json的值,所以在将其转换为json字符串之前我无法对字符串进行编码。
http://localhost/abc/sendMsg.php?json={"studentId":"15","msg":"Hindi : L&W 3rd poem 3 times. Soc Science : L&W hard words 5 times."}
答案 0 :(得分:2)
根据我的理解,客户端浏览器中的应用程序会生成JSON数组。在这种情况下,您应该尝试使用JSON.stringify
<script>
url = "http://localhost/abc/sendMsg.php?json="+JSON.stringify(yourJSON);
</script>
修改强>
好的,所以从你的评论中你告诉你是否正在接收PHP中的URL。
注意:最佳做法是从Android转义网址。如果在发送之前未进行转义,则会导致某些可能不支持特殊字符的浏览器/应用程序出现问题。有关特定RFC,请参阅此主题:space in url; did browser got smarter or server?
如果不可能作为后备,我建议将网址拆分为仅检索字符串,而不是使用$_GET
参数。
您可以尝试以下方式:
<?php
$urlParts = explode('?json=', 'http://localhost/abc/sendMsg.php?json={"studentId":"15","msg":"Hindi : L&W 3rd poem 3 times. Soc Science : L&W hard words 5 times."}');
$jsonPart = end($urlParts);
$decodedJson = json_decode($jsonPart);
?>
答案 1 :(得分:0)
请使用以下代码
$str='[{"studentId":"15","msg":"Hindi : L&W 3rd poem 3 times. Soc Science : L&W hard words 5 times."}]';
print_r(json_decode($str));
输出
Array ( [0] => stdClass Object ( [studentId] => 15 [msg] => Hindi : L&W 3rd poem 3 times. Soc Science : L&W hard words 5 times. ) )
答案 2 :(得分:0)
使用$ _Request []
获取它后将其转换为数组然后用于每个循环以获得特定值
foreach ($json_array as $key => $value){
$hindi = $value->Hindi;
echo $hindi;
}