JavaScript:在非常长的字符串的情况下不读取整个字符串

时间:2018-04-18 17:25:09

标签: javascript jquery html jsp

我有一个非常长的269313个字符的JSONstring,它作为JavaScript变量存储在一个单独的js文件中。

在CategorisationTree_HNB7x.js

中说
jsonMenuData = '[{"mopId":"AUDIT","mopType":"M","exeName":"","inputFileName":"","menuDesc":"Finacle Audit Menu","menus":{}},....

我正在将此js文件导入我的html页面

<script src="../categorisedData/CategorisationTree_HNB7x.js" type="text/javascript"></script>

<script>
    $(document).ready(function(){
        //creating menu elements
        console.log(jsonMenuData.length);
    });
</script>

当我尝试打印此字符串的长度时,在控制台日志中,它仅显示为267921个字符。字符串变量中似乎缺少最后1392个字符。 字符串有多大并不重要,总是丢失大约1000个字符。

我在这里缺少什么。如何处理这个问题?

2 个答案:

答案 0 :(得分:0)

我不确定究竟是什么问题,因为我看不到要测试的问题字符串,但JS使用UTF-16作为字符串,字节长度不同于.length

示例:

//JS String Lengths

"A".length // -> 1
"Ç".length // -> 1
"".length // -> 2

// Byte Lengths

new Blob(["A"]).size; // -> 1  
new Blob(["Ç"]).size; // -> 2
new Blob([""]).size; // -> 4  

答案 1 :(得分:0)

正如@CRice所提到的那样,Json字符串中的一些垃圾字符就像“\ u003d”。我在生成json字符串时将所有非字母数字字符替换为null。现在字符串长度匹配,我也能够解析JSON。

感谢大家提供的意见。