无法读取从gson库生成的json文件

时间:2013-10-15 06:41:37

标签: javascript json

这是我用来读取json文件的javascript文件的一部分。

function initSearchInfo() {
    var tagContent = "";
    var tagsCount = 15;
    var i = 0;
    $.ajax({
            type : "GET",
        url : JSON_URL + SEARCH_HISTORY_JSON + EXT_JSON + versionParam,
        dataType : "json",
        contentType : "application/json",
        async : false,
        success : function(data) {
            $.each(data.count, function(key, val) {
                i++;
                if (i > tagsCount) {
                    return false;
                } else {
                    tagContent += "<li><a data-weight=" + val + "     href='"
                        + GLOBAL_SEARCH_URL + key + "'>" + key
                        + "</a></li>";
            }
        });
        $("#taglist").html(tagContent);

    },
    error : function(xhr, status, error) {
        $("#tagCloud").html(getMessage(tagcloud.error));
        $("#searchHistory").hide();
        console.log(status);
    }
});

}

我能够读取这个json文件(1):

{
    "count": {
        "scm": {
            "count": 22,
            "date": "2013-05-08"
        },
        "java7": {
            "count": 22,
            "date": "2013-05-08"
        },
        "groovy": {
            "count": 22,
            "date": "2013-05-08"
        },
        "ldap": {
            "count": 21,
            "date": "2013-04-25"
        }
    },
    "date": "10Oct2013"
}

但是当我读到这个文件(2)时:

{"count":"{\"ldap\":{\"count\":15,\"date\":\"2013-04-04\"},\"myplace\":{\"count\":12,\"date\":\"2013-05-08\"},\"ts-ws1\":{\"count\":11,\"date\":\"2013-05-08\"},\"hbase workshop\":{\"count\":11,\"date\":\"2013-05-08\"},"date":"11 Oct 2013"}

当我尝试读取文件(2)时,我的代码中断了。 文件(2)由gson库生成。但是文件(1)由我编写。

2 个答案:

答案 0 :(得分:0)

似乎文件出现错误时出现语法错误。 “count”键的值是双引号,它们不能正确结束。

答案 1 :(得分:0)

file(2)不是有效的json文件。在第二个{之前你不能有双引号{并且你也不能在双引号之前有反斜杠。请发布生成文件(2)的代码。