我试图从JSON字符串获得数组值,我做的工作与json_decode
PHP。
<?php
$jsonContent=file_get_contents('http://megarkarsa.com/gpsjson.php');
$jsonDecoded=json_decode($jsonContent,true);
foreach($jsonEncoded['BMS'] as $p){
echo '
ID: '.$p['id'].'
Tipe: '.$p['type'].'
';
echo "<br>";
?>
PHP代码工作,并给出JSON字符串数组的结果。这是我的Javascript代码
<script>
var bmsdata = <?php echo $jsonDecoded ?>;
alert(bmsdata["1"].id); // For check, i want to see the id of row 1
</script>
但是什么也没有出现。到目前为止我做得对吗?或者我错过了一些东西传递值从PHP到Javascript?
$jsonDecoded
为解码后的json。
请换
var bmsdata = <?php echo $jsonDecoded ?>;
var bmsdata = <?php echo json_encode($jsonDecoded); ?>;
或者使用已经存在的变量$jsonContent
:
var bmsdata = <?php echo $jsonContent; ?>;
这个应该可以工作,因为我在http://megarkarsa.com/gpsjson.php上查找JSON;)
<script>
var bmsdata = <?php echo json_encode($jsonDecoded); ?>;
alert(bmsdata.BMS["1"].id); // For check, i want to see the id of row 1
</script>
你忘了'BMS'键;)
看起来您正在向javascript中注入经过解码的php数据表示。您可能(如果您想继续这样做)想要返回编码版本(jsonContent
)。
最终,您可能需要重新考虑该方法。通过ajax获取数据通常是一种更简单的方法,因为您不需要担心通过php编写纯javascript,因为php有各种转义问题。