Я получаю следующий JSON (который я проверил Вот):
{
"name": "Brian",
"agentid": "12345",
"username": "bob",
"passcode": "bob01",
"call": {
"aa": "11",
"bb": "22",
"cc": "33",
"dd": "44"},
"call": {
"aa": "111",
"bb": "222",
"cc": "333",
"dd": "444"},
"call": {
"aa": "1111",
"bb": "2222",
"cc": "3333",
"dd": "4444"},
"call": {
"aa": "11111",
"bb": "22222",
"cc": "33333",
"dd": "44444"}
}
Когда я это var_dump(json_decode($json, true));
, это дает мне:
array(5) {
["name"]=> string(5) "Brian"["agentid"]=> string(5) "12345"["username"]=> string(3) "bob"["passcode"]=> string(5) "bob01"["call"]=> array(4) {
["aa"]=> string(5) "11111"["bb"]=> string(5) "22222"["cc"]=> string(5) "33333"["dd"]=> string(5) "44444"}
}
Похоже, первые три call
элементы перезаписываются.
Как разобрать этот JSON и сохранить все call
элементы?
Это допустимый синтаксис JSON, но содержание не имеет смысла. Наличие более одного ключа с тем же именем неправильно. Вы должны сделать один call
и превратить его в JSON массив где вы будете хранить все объекты:
{
"name":"Brian",
"agentid":"12345",
"username":"bob",
"passcode":"bob01",
"call":[
{
"aa":"11",
"bb":"22",
"cc":"33",
"dd":"44"},
{
"aa":"111",
"bb":"222",
"cc":"333",
"dd":"444"},
{
"aa":"1111",
"bb":"2222",
"cc":"3333",
"dd":"4444"},
{
"aa":"11111",
"bb":"22222",
"cc":"33333",
"dd":"44444"}
]
}
Других решений пока нет …