2013-10-15 39 views
1

這是我用來閱讀json文件的JavaScript文件的一部分。無法讀取由gson庫生成的json文件

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)由我編寫。

回答

0

看起來像文件給出錯誤的語法錯誤。 「count」鍵的值用雙引號引起,並且不能正確結束。

+0

沒有語法錯誤。兩個都是有效的json文件。 – akashmkr6

0

文件(2)不是有效的json文件。在第二個{之前不能有雙引號{並且在雙引號之前不能有反斜槓。請發佈生成文件(2)的代碼。

+0

文件2是一個有效的json文件。 – akashmkr6

+0

@ akashmkr6爲什麼這樣?我發現它不適用於[驗證器](http://jsonlint.com/) – cindyxiaoxiaoli