簡體   English   中英

使用來自 PHP 的 JSON 進行 JSON 解析

[英]JSON parse using JSON from PHP

我使用網絡服務創建一個 PHP 數組$result ,但是當傳遞給 javascript 和 JSON.parse 時,沒有任何結果。 我是 php 和 JS 數組的新手,做了很多谷歌搜索,但找不到答案。 歡迎幫助!

首先是瀏覽器中的輸出,其中 PHP 數組打印出來,但 javascript 不輸出任何內容:-


1) Results of PHP array print Array ( [hotels] => Array ( [codigo] => LIMHBM [fecha] => 2016/9/15 [cannoc] => 1 [canhab] => 1 [canpax] => 2 [estado] => OK ) ) 2) Results of JSON parse: none

相關代碼部分:-

1) Results of PHP array print
<pre><?php print_r($result); ?></pre>

2) Results of JSON parse: 
<span id="demo">none</span>

<script type="text/javascript">
var result = JSON.parse( '<?php echo json_encode($result) ?>' );
document.getElementById("demo").innerHTML = result.hotels[0].codigo + " " + result.hotels[0].estado;
</script>

實際上你的代碼是正確的,直到最后一行 javascript 代碼是:-

document.getElementById("demo").innerHTML = result.hotels[0].codigo + " " + result.hotels[0].estado;

將其更改為:-

document.getElementById("demo").innerHTML = result.hotels.codigo+ " " + result.hotels.estado;

例子:-

<?php 

$result = Array
(
    'hotels' => Array
        (
            'codigo' => 'LIMHBM',
            'fecha' => '2016/9/15',
            'cannoc' => 1,
            'canhab' => 1,
            'canpax' => 2,
            'estado' => 'OK'
        )

);
?>
1) Results of PHP array print
<?php echo "<pre/>";print_r($result); ?>

2) Results of JSON parse: 
<span id="demo">none</span>

<script type="text/javascript">
var result =  JSON.parse('<?php echo json_encode($result) ?>');
console.log(result); // to just show you te output in console
document.getElementById("demo").innerHTML = result.hotels.codigo+ " " + result.hotels.estado;
</script>

輸出:- http://prntscr.com/avm729

對於多維數組幫助,請檢查:-

http://prntscr.com/avmcp3

這一點毫無意義:

var result = JSON.parse( '<?php echo json_encode($result) ?>' );

JSON已經是有效的JavaScript,因此沒有必要對它進行解析。 您需要做的就是直接將其轉儲到代碼塊中:

var result = <?php echo json_encode($result); ?>;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM