JSON字符串(JavaScript Object Notation)是一种轻量级数据交换格式。在一些前端应用中,我们可能需要将JSON字符串进行加密或传输,常见的做法是将其转换为Base64编码。下面,我们来介绍一下如何用JavaScript将JSON字符串转换为Base64编码。
// JSON字符串 var jsonStr = '{"name": "小明","age": 18,"gender": "male"}'; // 将JSON字符串转换为js对象 var jsonObj = JSON.parse(jsonStr); // 将js对象转换为字符串 var str = JSON.stringify(jsonObj); // 将字符串转换为Base64编码 var base64Str = btoa(str); console.log(base64Str); // e1xvY2FsXSA6IOiHquW3peWGheWFqCfmnInlpb3pqZnmlbDpopzoqLzs=
上面的代码中,我们首先定义一个JSON字符串,然后使用JSON.parse()方法将其转换为JavaScript对象,再使用JSON.stringify()方法将对象转换为字符串。接着,使用btoa()方法进行Base64编码,得到加密后的Base64字符串。
注意,上述代码中使用的是btoa()方法,该方法需要在字符集范围内,即只能接受ASCII字符编码,不能接受Unicode字符编码。如果要转换的字符中含有Unicode字符,则需要使用其他方法。这里推荐使用第三方库js-base64。
// 引入js-base64库 <script src="https://cdn.bootcss.com/js-base64/2.5.2/base64.min.js"></script> // JSON字符串 var jsonStr = '{"name": "小明","gender": "male"}'; // 将JSON字符串转换为js对象 var jsonObj = JSON.parse(jsonStr); // 将js对象转换为字符串 var str = JSON.stringify(jsonObj); // 将字符串转换为Base64编码 var base64Str = Base64.encode(str); console.log(base64Str); // eyJuYW1lIjogIueOi-WkqeeahOacinnplobnlgiHlrZnmiLciLCAiYWdlIjogMTgsICJnZW5kZXIiOiAiB21hbGUifQ==
使用js-base64库时,我们需要先引入该库的JavaScript文件,然后使用Base64对象的encode()方法进行Base64编码,同样可以得到加密后的Base64字符串。