JSON 编码/解码 JavaScript 中的 base64 编码/解码

Posted

技术标签:

【中文标题】JSON 编码/解码 JavaScript 中的 base64 编码/解码【英文标题】:JSON encode/decode base64 encode/decode in JavaScript 【发布时间】:2011-01-12 03:19:04 【问题描述】:

javascript 中有 JSON 编码/解码 base64 编码/解码功能吗?

【问题讨论】:

How to base64 encode inside of javascript 的可能副本。显然,搜索很困难。 ***.com/search?q=javascript+base64 看看:json.org/js.html 【参考方案1】:

是的,btoa() 和 atob() 在某些浏览器中工作:

var enc = btoa("this is some text");
alert(enc);
alert(atob(enc));

【讨论】:

"Some browsers" === "Gecko and WebKit" @Matt Ball。大多数语言都会反驳:) javascript:window.opera && window.btoa && confirm("hi") 为什么选择window.opera?我消除了它,它适用于 Firefox 和 Chrome。不知道为什么 IE 的工具不允许我在脚本控制台中测试 JavaScript。我会继续寻找。 供参考,自 IE 10 起所有浏览器都支持它。caniuse.com/#feat=atob-btoa【参考方案2】:

JSON 和 base64 完全独立。

Here's a JSON stringifier/parser(和direct GitHub link)。

Here's a base64 Q&A。 Here's another one.

【讨论】:

【参考方案3】:

这可能对您有所帮助。结合使用这个项目crypto-js 和 Prototype 来解析 JSON,我编写了两个函数来将 JSON 编码/解码为 Base 64。(这些函数不检查格式不正确的 json)


    函数 JSONtoBase64(jsonObj) 
        返回 Crypto.util.bytesToBase64(Crypto.charenc.UTF8.stringToBytes(Object.toJSON(jsonObj)));
    ;

    函数 base64ToJSON(字节)
        var jsonString = Crypto.charenc.UTF8.bytesToString(Crypto.util.base64ToBytes(bytes));
        返回 jsonString.evalJSON();
    ;

【讨论】:

【参考方案4】:

对于非 Mozilla 浏览器,请使用:http://www.webtoolkit.info/javascript-base64.html

对于 Mozilla 浏览器,请使用 btoa()atob()

【讨论】:

【参考方案5】:

我认为没有内置的,但这是 jquery 中 JSON 的函数:(由于我是新手,无法发布链接) jQuery.getJSON jQuery.parseJSON

这里是 javascript 中 base64 编码的链接。http://www.webtoolkit.info/javascript-base64.html

【讨论】:

jQuery.parseJSON 已在 1.4 中添加,在以前的版本中不起作用。

以上是关于JSON 编码/解码 JavaScript 中的 base64 编码/解码的主要内容,如果未能解决你的问题,请参考以下文章

JAVASCRIPT与PHP对JSON的操作

操作JSON数据

swift Swift 4中的自定义JSON编码/解码

JavaScript中的编码解码

如何在circe中编码/解码json的时间戳?

json是啥编码