如何在javascript中完全获取具有重复键的JSON

Saj*_*aju 6 html javascript jquery json

我试图从 url 获取 JSON,但在响应对象中删除了重复的键。有没有办法在不删除重复键的情况下完全获取它?这是我的 js 代码

$('document').ready(function(){
    var s = $.getJSON("new.json");
    console.log(s);
});
Run Code Online (Sandbox Code Playgroud)

以下是我的 new.json

{
"s": "wae",
"s": "asd"
}
Run Code Online (Sandbox Code Playgroud)

但在控制台中我得到如下的 json 对象

responseJSON: Object
s: "asd"
Run Code Online (Sandbox Code Playgroud)

提前致谢

Cra*_*ack 1

JSON 对象中的键应该是唯一的。否则,带有值的最后一个键通常是请求该键时出现的键。拥有相同的键也会使区分对象的属性变得更加困难。密钥的全部意义在于使其可访问且可用。

为了解决这个问题,你可以随时:

  1. 更改 JSON 中的键

  2. 更改 JSON 以包含数组

    {"s": ["wae","asd"]}

JavaScript 对象表示法(JSON)数据交换格式)(RFC7159)说:

对象内的名称应该是唯一的。

在这种情况下,必须按照RFC 2119中的规定来理解

应该 这个词或形容词“推荐”意味着在特定情况下可能存在忽略特定项目的正当理由,但在选择不同的路线之前必须理解并仔细权衡其全部含义。


RFC 7159 解释了为什么唯一键是好的: > 名称全部唯一的对象是可互操作的 > 所有接收该对象的软件实现都会就名称-值映射达成一致。当对象中的名称不唯一时,接收此类对象的软件的行为是不可预测的。许多实现仅报告姓/值对。其他实现报告错误或无法解析对象,并且某些实现报告所有名称/值对,包括重复项。> > JSON 解析库已被观察到在它们是否使对象成员的顺序对调用软件可见方面有所不同。行为不依赖于成员顺序的实现将是可互操作的,因为它们不会受到这些差异的影响。

  • 虽然这都是很好的建议,但它实际上并没有回答问题。 (11认同)