如何从服务器清理狡猾的JSON文件

时间:2010-06-25 13:08:42

标签: jquery json

我正在尝试使用来自我们网站的JSON提要,但这种方式无法正确格式化。我可以通过$ .ajax调用首先调用它来清理feed,但希望能够将这些已清理的内容传回迭代,就像它是一个JSON对象一样。

$(document).ready(function()
{
    // use ajax call as json supplied needs cleaning first
    $.ajax({
        url: 'JSON.txt',
        success: function (data)
        {
            var i = 0;
            var html = '';
            var regex = /<!--.+?-->/g;
            responseText = data.replace(regex,'');  // clean up Jahia's dodgy JSON output
            $('body').append(responseText);
        }
    });
});

任何想法如何将responseText作为JSON对象返回,以便我可以使用$ .each函数来解析文件?

3 个答案:

答案 0 :(得分:1)

由于您已经在使用jquery,因此请使用jQuery.parseJSON()将字符串转换为JSON对象。

答案 1 :(得分:0)

您可以使用json库将文本字符串转换为json对象。

库: https://github.com/douglascrockford/JSON-js/blob/master/json2.js

文档: http://www.json.org/js.html

答案 2 :(得分:0)

您无法从大多数AJAX回调函数的主体返回任何内容,因为它们是异步的。一旦你格式化了JSON字符串,你可以通过评估它将它变成一个JSON对象(技术上不好的做法,但它是如何将字符串转换为对象),然后将其作为参数传递给另一个函数。所以像这样:

var newJSON = eval(responseText);
handleJSON(newJSON);

其中handleJSON必须是您在代码中其他位置定义的函数,该函数知道如何处理您将收到的响应。