Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 解析jQuery中数组的JSON数组_Php_Jquery_Json - Fatal编程技术网

Php 解析jQuery中数组的JSON数组

Php 解析jQuery中数组的JSON数组,php,jquery,json,Php,Jquery,Json,我目前正在使用jQuery的$.get()来处理数据库文本字段中输入的ID。它目前运行得很好,尤其是PHP,它可以处理多个逗号分隔的条目 我遇到的问题是jQuery;更具体地说,JSON解析。PHP文件返回一个数组数组,用于操作。虽然它适用于单个条目,即“12346”,但不适用于多个条目,例如“12345678910” 在第77行专门抛出错误:var serverData=$.parseJSON(data)[0] 这是堆栈跟踪 Uncaught SyntaxError: Unexpected t

我目前正在使用jQuery的
$.get()
来处理数据库文本字段中输入的ID。它目前运行得很好,尤其是PHP,它可以处理多个逗号分隔的条目

我遇到的问题是jQuery;更具体地说,JSON解析。PHP文件返回一个数组数组,用于操作
。虽然它适用于单个条目,即
“12346”
,但不适用于多个条目,例如
“12345678910”

在第77行专门抛出错误:
var serverData=$.parseJSON(data)[0]

这是堆栈跟踪

Uncaught SyntaxError: Unexpected token s in JSON at position 2
    at Function.parse [as parseJSON] (<anonymous>)
    at Object.<anonymous> (myScript.js:77)
    at u (jquery.min.js:2)
    at Object.fireWith [as resolveWith] (jquery.min.js:2)
    at k (jquery.min.js:2)
    at XMLHttpRequest.<anonymous> (jquery.min.js:2)
jQuery:

$.get("check-in.php", {value: inputValue}).done(function(data) {
  var serverData = $.parseJSON(data)[0];
  if (serverData.success) {
    $.each(serverData.students, function(sid, tableValues) {
      /* Create a <tr> based on the information (using the key as the SID,
       * name, and advisory, and insert that <tr> into a table */
    });
  }
}

我很困惑,因为它在处理单数字条目时工作得很好。我在这个网站上看过“解析JSON数组”的解决方案,但我尝试了所有这些建议。非常感谢您的帮助

我认为没有必要将
$json_params
作为一个数组。它存储在循环之外,只执行一次。只需删除
[]
部分即可。代码如下所示

$json_params = array(
    "students" => $student_array, /* The array of arrays */
    "success" => "n students were checked in, nice!" /* generic message */
    "failure" => "m students couldn't be accessed"
);
jQuery
中,您可以简单地检索JSON结果,而无需访问密钥数组<代码>[0]
不是必需的,因为
$json_params
中的
[]
已被删除

var serverData = $.parseJSON(data);

我认为没有必要将
$json_params
作为一个数组。它存储在循环之外,只执行一次。只需删除
[]
部分即可。代码如下所示

$json_params = array(
    "students" => $student_array, /* The array of arrays */
    "success" => "n students were checked in, nice!" /* generic message */
    "failure" => "m students couldn't be accessed"
);
jQuery
中,您可以简单地检索JSON结果,而无需访问密钥数组<代码>[0]不是必需的,因为
$json_params
中的
[]
已被删除

var serverData = $.parseJSON(data);
您的代码包含以下内容:

var serverData = $.parseJSON(data)[0];
但它失败了,因为数据已经是一个对象(不是需要解析的json字符串)。
试试这个:

var serverData = data[0];
您的代码包含以下内容:

var serverData = $.parseJSON(data)[0];
但它失败了,因为数据已经是一个对象(不是需要解析的json字符串)。
试试这个:

var serverData = data[0];


错误消息是什么?完全忘记了,我将编辑postase console.log以打印json数据并确保它看起来正确(或者更好,学习如何使用内置在浏览器中的调试器)我文章中的json字符串是从控制台复制的错误消息是什么?完全忘记了,我将编辑postase console.log以打印json数据并确保它看起来正确(或者更好,学习如何使用内置在浏览器中的调试器)。我文章中的json字符串是从控制台复制的啊,你确定在PHP输出中没有收到任何错误或警告吗?也许这就是JSON的问题所在,PHP的响应必须是从字节0到结尾的有效JSON。是的,PHP输出中没有错误或警告。我怀疑这段js代码中的数组访问<代码>$。parseJSON(数据)PHP没有任何错误;它完全符合预期。我将尝试这样的PHP:
$json_params=array()$json_参数[“学生”]=$success_数组$json_参数[“success”]=$result_success和jQuery如下所示:
var serverData=$.parseJSON(数据)。问题仍然存在
serverData
的输出是什么?是的,您确定在PHP输出中没有收到任何类型的错误或警告吗?也许这就是JSON的问题所在,PHP的响应必须是从字节0到结尾的有效JSON。是的,PHP输出中没有错误或警告。我怀疑这段js代码中的数组访问<代码>$。parseJSON(数据)
PHP没有任何错误;它完全符合预期。我将尝试这样的PHP:
$json_params=array()$json_参数[“学生”]=$success_数组$json_参数[“success”]=$result_success和jQuery如下所示:
var serverData=$.parseJSON(数据)。问题仍然存在
serverData
的输出是什么?我将尝试一下
console.log()。是否有可能是您错误地使用了console.log?您是在查看console.log的输出还是返回值?更正,
console.log(数据)
是我用来获取JSON字符串的
console.log(serverData)
显示对象本身。因此,我认为JSON没有问题,但JQUERI会尝试一下
console.log()
serverData.success
undefined
::我已经用JSON数据测试了这一点(浏览器端),它可以工作。是否有可能是您错误地使用了console.log?您是在查看console.log的输出还是返回值?更正,
console.log(数据)
是我用来获取JSON字符串的
console.log(serverData)
显示对象本身。所以我想这不是JSON的问题,而是jQuery的问题