javascript - 我可以将 JavaScript JSON.parse 与外部数组一起使用吗?

标签 javascript php arrays json

我需要从外部文件中获取数据;我试图发出一个 ajax 请求,但我似乎只能将所有数据作为字符串获取。我在使用 JSON.parse 时遇到问题;我收到 'Uncaught SyntaxError: Unexpected token 'xmlhttp.onreadystatechange'。我知道这可能是因为我没有获取 JSON 数据。这是我目前所拥有的:

function loadXMLDoc() {
    var xmlhttp;
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            var data = xmlhttp.responseText;
            var jn = JSON.parse(data);
            document.getElementById("output").innerHTML = jn;
        }
    }
    xmlhttp.open("GET", "Users.php", true);
    xmlhttp.send();
}
window.onload = loadXMLDoc;

这是我从“Users.php”中得到的一个字符串,而不是一个数组:

[['@user1',238,'img/user1.jpeg'],['@user2',220,'img/user2.jpeg'],['@user3',180,'img/user1.jpeg']]

如何从字符串中检索所有数据,或将其转换为数组?我什至尝试使用 split 函数,但我做不好。

感谢您的帮助!

最佳答案

更新

如果您可以控制 Users.php,那么您可以通过对数据使用 json_encode() 来解决问题。这将使用双引号来包装字符串,并在没有 replace() 的情况下得到我在下面建议的结果

以前

json 期望字符串被双引号而不是单引号包围。

所以一个 hack 应该是 JSON.parse(data.replace("'", '"'))

如果返回的字符串中有任何双引号或转义的单引号,您当然会被绊倒。

关于javascript - 我可以将 JavaScript JSON.parse 与外部数组一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32401722/

相关文章:

javascript - 同时在两个文本框上显示光标

javascript - 鼠标关闭时停止/反转动画(baraja jquery 插件)

php - 如何将 JavaScript 变量传递给 PHP?

php - 如何填充下拉菜单

php - 按时间戳对 PHP 进行数组排序

Javascript - 使用变量获取数组的一部分

javascript - 如何根据另一个选择字段值动态更改选择字段?

php - 没有从php post请求中获取参数

php - POST undefined variable ,但 REQUEST 有效

c++ - 在不知道提前长度的情况下在 C++ 中创建数组