我到处都读到JSON无法编码二进制数据,所以我写了这个简单的测试来检查这是否真的正确。
function test(elem){
let reader = new FileReader ;
reader.onload = ()=>{
let json = JSON.stringify(reader.result) ;
let isCorrect = JSON.parse(json) === reader.result ;
alert('JSON stringification correct: ' + isCorrect) ;
} ;
reader.readAsBinaryString(elem.files[0]) ;
}
Choose a binary file: <br>
<input type=file onchange="test(this)">
您必须从计算机中选择一个二进制文件,然后test
函数会将该文件读取为二进制字符串,然后它将JSON.stringify
将该字符串读取,然后解析回该字符串并将其与原始的二进制字符串。
我尝试了很多二进制文件(大多数是.exe文件),但是我找不到一个无法通过JSON格式识别的文件。
您能举一个无法转换为JSON字符串的示例吗?