使用$.ajax返回HTML&;将其转换为JavaScript数组

使用$.ajax返回HTML&;将其转换为JavaScript数组,javascript,ajax,arrays,Javascript,Ajax,Arrays,我抓取了一个HTML页面的内容,页面上的内容非常简单。它只是一个“数组”,虽然它是纯文本,所以当它返回时,JavaScript将其视为字符串而不是数组。这是HTML页面上的全部内容: var urlArray = window.location.pathname.split("/"), idFromUrl = urlArray[2], dataPath = "/bulletins/" + idFromUrl + "/data"; $.ajax({ url: dataPa

我抓取了一个HTML页面的内容,页面上的内容非常简单。它只是一个“数组”,虽然它是纯文本,所以当它返回时,JavaScript将其视为字符串而不是数组。这是HTML页面上的全部内容:

var urlArray = window.location.pathname.split("/"),
    idFromUrl = urlArray[2],
    dataPath = "/bulletins/" + idFromUrl + "/data";

$.ajax({
    url: dataPath,
    type: "get",
    dataType: "html",
    success: function (data) {
        var dataObj = data.replace(/"/g, '"');

        console.log(dataObj);
    }
});
如果不替换
,一个
控制台.log
就会弹出
[{“sermontitle”:“test”,“welcome”:“test”,“id”:“52E7F0A15F85B214BF1000001”}]

所以我的问题是,我如何将HTML字符串(已经在“数组”形式)转换为实际数组?

将“dataType”更改为“json”,它将为您转换:

[{"sermontitle":"test","welcome":"test","_id":"52e7f0a15f85b214f1000001"}]
如果它返回的是
,而不是
,那么我将更改AJAX返回页面,以确保它执行正确的JSON响应。

将“数据类型”更改为“JSON”,它将为您转换:

[{"sermontitle":"test","welcome":"test","_id":"52e7f0a15f85b214f1000001"}]
如果它返回的是
而不是
,那么我将更改AJAX返回页面,以确保它执行正确的JSON响应。

您可以使用JSON.parse

var urlArray = window.location.pathname.split("/"),
    idFromUrl = urlArray[2],
    dataPath = "/bulletins/" + idFromUrl + "/data";

$.ajax({
    url: dataPath,
    type: "get",
    dataType: "json",
    success: function (data) {
        console.log(data);
    }
});
您可以使用JSON.parse

var urlArray = window.location.pathname.split("/"),
    idFromUrl = urlArray[2],
    dataPath = "/bulletins/" + idFromUrl + "/data";

$.ajax({
    url: dataPath,
    type: "get",
    dataType: "json",
    success: function (data) {
        console.log(data);
    }
});

您可以将返回的HTML片段解析为JSON:

JSON.parse(dataObj);

您可以将返回的HTML片段解析为JSON:

JSON.parse(dataObj);

为什么回答是“?你是怎么说你从
HTML
页面上得到的?如何拥有
阵列
?除了
[]
之外,它看起来像
JSON
JSON
具有强大的语法。我会尝试剥离
[]
,然后剥离
json.parse()
它。@dollarvar我是从HTML页面上得到的,因为我有点黑客攻击了一个用Jade构建的节点视图,只是将所有数据转储到一个空页面上。我不知道如何使用Jade模板快速创建JSON文件。剥离
[]
然后
JSON.parse()
是否有效?JSON.parse确实有效。不过,我可能还是想去掉
[]
。你知道如何用正则表达式实现吗?为什么响应是带“?你是什么意思?你是从
HTML
页面上得到的?你怎么有
数组
?它看起来像
JSON
,除了
[]
JSON
有很强的语法。我会尝试去掉
[]
然后
JSON.parse()
it.@dollarvar我是从HTML页面上得到的,因为我在某种程度上侵入了一个使用Jade构建的节点视图,将所有数据转储到一个空页面上。无法像使用Jade模板那样快速创建JSON文件。是否剥离
[]
然后
JSON.parse()
it work?json.parse确实有效。我可能想去掉
[]
仍然是。你知道如何使用正则表达式吗?是的,我试过了,但没有成功。它什么也不返回。我想这是因为它实际上不是一个JSON文件。你有没有在文件中放入JSON头?是的,我试过,但没有成功。它什么也不返回。我想这是因为它实际上不是一个JSON文件。你有没有使用d在文件中放入JSON头?我不小心单击了删除,太糟糕了:-)我不小心单击了删除,太糟糕了:-)