我有一个非常长的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个字符。
我在这里缺少什么。如何处理这个问题?
答案 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。
感谢大家提供的意见。