Php 解析jQuery中数组的JSON数组
我目前正在使用jQuery的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
$.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的问题