使用php检测JSON中的重复键

时间:2012-09-07 14:38:28

标签: php json validation duplicates

我从外部合作伙伴处收到一个JSON字符串,并使用php 5.3.3

解析它
$jsonObject = json_decode($jsonString);
json_last_error()...

虽然json_last_error()检测到无效的JSON,但它没有检测到重复的密钥,如下所示:

{
  "first" : "First name",
  "last"  : "Last name",
  "info"  : {
     "phone" : "555-555-555",
     "phone" : "222-222-222"
     }
}

请注意,这两个电话号码使用相同的密钥,但不在阵列中。 有没有办法在php中检测这样的重复键?

2 个答案:

答案 0 :(得分:4)

不能是重复的密钥!

这是的定义 - 它必须是唯一

第二个会覆盖第一个,因此不会成为任何真正的重复密钥。

答案 1 :(得分:1)

正如@Neal所说,除非你构建自己的json解析器,否则这是不可能的。或者使用其他人。

例如,您可以使用seld/jsonlint

以下是代码Composer uses since today to warn about duplicate requirements

mp.setAudioStreamType(AudioManager.STREAM_MUSIC);