簡體   English   中英

如何在Javascript中訪問JSON數組

[英]How to access JSON array in Javascript

我如何獲得“ LSZ09”。

var el1=data[0];
alert(el1);

這給了我數組的“ a”,因為位置1給了我r,2 r,3 a,4y...。

該數組通過“ echo json_encode($ punten);”接收

當我嘗試

var jsonDataArray = JSON.parse(data);

我收到語法錯誤:

SyntaxError: JSON.parse: unexpected character

碼:

$.ajax({ url: 'getPunten.php',
                        data: {statnam: jSelectedStation[0]},
                        type: 'get',
                        success: function(data) {

從php腳本接收,最后一行是:echo json_encode($ punten);

[{"STATDEV":"LSZ09 ","0":"LSZ09 ","DEVPKT":"1","1":"1","PKTTYP":"S","2":"S","KARTNR":"0","3":"0","BITNRK":"1","4":"1","BITSTATUS":"0","5":"0","TYPE":"I ","6":"I "},{"STATDEV":"LSZ10 ","0":"LSZ10 ","DEVPKT":"1","1":"1","PKTTYP":"S","2":"S","KARTNR":"0","3":"0","BITNRK":"2","4":"2","BITSTATUS":"0","5":"0","TYPE":"I ","6":"I "}

PHP:

$db = new PDO ("xxxx");
$qry="SELECT r.refnam, r.zustnr FROM refdev r INNER JOIN (SELECT refnam, COUNT(*) cnt FROM refdev rc GROUP BY refnam) rc ON rc.refnam = r.refnam LEFT OUTER JOIN texte t ON r.sigtnr = t.textnr WHERE rc.cnt = $aantal AND t.tstring LIKE '%$tekst%' ORDER BY r.refnam, r.zustnr";
$filterQry = $db->query($qry);
$filtered = $filterQry->fetchAll();
echo json_encode($filtered);

如果您顯示的php是您正在使用的php,否,它將無法正常工作。

你看,那被傳遞給JavaScript文本包括結果var_dumpecho

考慮下面的PHP代碼:

<?php
    $filtered = array(1,2,3);
    var_dump($filtered);
    echo json_encode($filtered);    
?>

您認為這是什么結果? 提示:這不是您所期望的。 您似乎期望它會

 [1,2,3]

好吧-至少有一部分。 那只是最后一行的輸出。 但是我們沒有考慮中間線var_dump($filtered); -該代碼將輸出與您用Received from php script, with last line being: echo json_encode($punten);到的代碼相似的代碼Received from php script, with last line being: echo json_encode($punten);

我的代碼段的輸出實際上是:

array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } [1,2,3]

這就是為什么要獲取包含“ a”,“ r”,“ r”,“ a”,“ y”的前5個元素的原因! 這也是為什么調用JSON.parse(data); 失敗- "arrray(3)"不是有效的json。

提示:當您使用瀏覽器導航到php腳本時,看到的內容將通過ajax調用進行檢索。

暫無
暫無

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

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