javascript - JSON 和二进制数据 - 编码

标签 javascript ajax json

我对 JSON 比较陌生。我最近将 JQuery 和 JavaScript 添加到应用程序中,以使其更具交互性和更快。我了解 JSON 如何适用于基本类型,例如:字符串、数字等,其中有 MAP,即键和值。例如:http://www.w3schools.com/json/ 。这里有一个员工列表,其中每个员工都有两个键,即名字和姓氏,以及两个值,即名字值和姓氏值。

但是,我不明白二进制数据如何适合该方程。假设我要向 Employee 对象添加一个名为:Video 的新属性,其类型为:application/octet-stream,如问题中所示:Binary Data in JSON String. Something better than Base64其值为:

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz
    IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg
    dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu
    dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo
    ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

这些数据如何表示为 MAP?我意识到这可能是一个简单的问题,但是我确实有一本 JSON 书,但它没有详细介绍。我在网上也没有找到答案。

最佳答案

我认为你给予“ map ”(KV 对)太多的值(value)。正如您所指出的,JSON 有少量类型:数字、字符串、truefalsenull、数组和对象。您可以将对象和“ map ”视为同一事物。对象可以由其他类型构建,例如:

{
    "person": {
        "name": "John"
    }
}

Person 是一个对象,其 name 属性是字符串。

因此,如果您想用 JSON 表示二进制数据,则必须使用现有类型之一(通常作为通过 Base64 的字符串)。在 linked question 给出的示例中,对象的 value 属性是文件的 Base64 编码值。

{
    "mimetype" : "application/octet-stream”,
    "metadata" : [ ],
    "value" :   "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=",
}

如果您熟悉 JavaScript,以下内容将为您提供字符串形式的 Base64 编码值:

var obj = JSON.parse(json);
var value = obj.value; // This is a string

关于javascript - JSON 和二进制数据 - 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25591407/

相关文章:

javascript - jQuery 搜索包含多个单词的段落

javascript - 将文本即时转换为超链接或将它们存储在数据库中?

javascript - 为什么我的模板的 if 子句没有反应式更新?

javascript - 使用 jQuery 的简单 AJAX HTTP GET

jquery - XMLHttpRequest - SEC7127 : Redirect was blocked for CORS request

javascript - 将 JSON 对象发送到 Web 服务时 $.ajax 函数失败

json - 有没有办法在 ColdFusion 中转义井号字符 (#)?

javascript - 为什么我得到的响应值为 null,而实际上响应不为 null

json - 具有 json 解析器的单元测试 Play Controller 操作

javascript - mustache 填充 JSON 对象错误