javascript - 如何在 Javascript 中访问 JSON 数组

标签 javascript php arrays json

我如何获得“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 标记的代码最后一行是: 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); 失败 - "array(3)" 不是有效的 json。

提示:当您使用浏览器导航到 php 脚本时,您看到的内容就是通过 ajax 调用检索的内容。

关于javascript - 如何在 Javascript 中访问 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19657664/

相关文章:

javascript - 如何将组添加到 buefy b-taginput?

javascript - 如何在 javascript 或 angular2 应用程序中运行 R 脚本(客户端)

php - 从数据库计算列然后拉入表格单元格

java - 返回 arrayList 时遇到问题

c++ - 在 C++ 中声明数组

php - 可以重用临时变量吗?

javascript - Google Spreadsheet On 更改将日志写入另一张表

javascript - 如何获得服务器加入和今天 discord.js v12 之间的正确时差?

php - 在 laravel 查询中选择 mysql 期间添加自定义字段

php - 在现有语句中添加联接