JSON 中的重复键

Moh*_*rma 0 javascript json

如果给定的 JSON 包含重复键,我如何解析和显示错误。JSON.parse 只是忽略它并选择最后一个键值。另外让我知道是否有任何类型的 npm lib 可用。

{
  "name":"mohit",
  "name":"verma"
}
Run Code Online (Sandbox Code Playgroud)

cod*_*onk 5

如果您可以预测 JSON 将如何格式化*,您可以将文本与解析和重新字符串化对象的结果进行比较:

  • 有关这将失败的情况的描述,请参阅下面的评论

const hasDuplicateKey = (j) => {
    let k = JSON.stringify(JSON.parse(j));
    let h = JSON.stringify(JSON.parse(j),null,"  ");
    return !(j === h || j === k);
};

let json1 = `{"name":"bob","name":"alice","age":7}`;
let json2 = `{"name":"bob","age":7}`;

let json3 = `{
  "name": "mohit",
  "name": "verma"
}`;

let json4 = `{
  "name": "mohit",
  "age": 107
}`;

console.log( hasDuplicateKey(json1) );
console.log( hasDuplicateKey(json2) );
console.log( hasDuplicateKey(json3) );
console.log( hasDuplicateKey(json4) );
Run Code Online (Sandbox Code Playgroud)