Я создаю приложение, основанное на данных, которые я получаю от API, сформированного как ответ, аналогичный функции json_encode(). Теперь я не знаю, как (я знаю, это возможно), что API время от времени возвращает дубликаты ключей. Поскольку это не мой сайт для исправления дубликатов ключей, я должен найти решение, как разобрать этот ответ в полезный массив, который содержит все данные, отправленные мне. Я хотел бы переименовать дубликаты ключей, добавив «x01», «x02», «x03» ... в свои ключи. До сих пор я нашел одно решение, которое могло бы помочь (here), но мне кажется, что это только для более простых массивов - я имею дело с вложенными массивами. Итак, вот ответ демо API:Разбор вложенных объектов JSON с дублирующимися ключами (PHP или JS)
{"boss":"mike",
"employees":{
"Josh":{
"active":"1",
"hours":"12",
"name":"Josh"},
"Josh":{
"active":"1",
"hours":"3",
"name":"Josh"}
}
}
Итак, как вы можете видеть, почти весь ключ «Джош» дублируется (в «часы» к югу клавиши за исключением). Несмотря на то, что это похоже на ошибку, для меня важны обе значения. Итак, это массив, который я хотел бы получить:
array (
"boss" => "mike",
"employees" = array (
"x01Josh" = array ("active" => "1", "hours" => "12", "name" => "Josh")
"x02Josh" = array ("active" => "1", "hours" => "3", "name" => "Josh")
)
)
Я имел представление о том, даже доходя одно слово в то время проверки, если это строка, двойные кавычки, запятая или любой из фигурные скобки и построить функцию соответственно. Я передумаю, это займет очень длинный и неэффективный код (медленный процесс).
Поскольку я новичок в RegEx, и так как я не нашел решения с этим (я уверен, что он существует, но мне его не удалось найти), я прошу вас о помощи.
Я планирую анализировать его либо в JavaScript/jQuery, либо в PHP (используя другой запрос JSON). Спасибо заранее.
ОБНОВЛЕНИЕ Я забыл упомянуть - причина, по которой я делаю это, состоит в том, что второй ключ перезаписывает первый (дубликат). Кроме того, я не могу изменить API (это не API моего сайта). Я уже попросил их внести некоторые изменения в эти проблемы, но тем временем я должен сделать это с моей стороны.
в JavaScript дубликат ключа перезаписывает первый , в строгом режиме он возвращает ошибку. –
- вот почему мне нужно каким-то образом разобрать его, чтобы его можно было использовать без ошибок или перезаписи. – agapetos
Эти дублированные ключи точно соответствуют друг другу? – revo