我正在尝试将JSON字符串传递给我的PHP脚本,但我不确定如何以考虑可能有0个或更多电话,电子邮件和传真的方式构建字符串。
以下是我的字符串的示例:
{"mode": "ADD_CONTACT", "id": 316, "firstname": "", "lastname": "", "telephones": {"teltype": 1, "telnumber": "234523453245", "isprimary": 0, "teltype": 4, "telnumber": "657567567567", "isprimary": 0}}
问题是我的脚本只给我最后一个电话号码,大概是因为JSON参数名称是相同的,所以我应该使用什么格式来实现我想要的?我想避免在参数名称的末尾加上增量数字,即“telnumber1”,“telnumber2”等。
答案 0 :(得分:4)
使用数组(可以为空):
{..., "telephones": [{"teltype": 1, "telnumber": "234523453245", ...}, {...}]}
示例:
$json =
'{"telephones": [' .
'{"teltype": 1, "telnumber": "222222222222"}, ' .
'{"teltype": 1, "telnumber": "111111111111"}' .
']}';
print_r(json_decode($json, true));
Array
(
[telephones] => Array
(
[0] => Array
(
[teltype] => 1
[telnumber] => 222222222222
)
[1] => Array
(
[teltype] => 1
[telnumber] => 111111111111
)
)
)
答案 1 :(得分:2)
听起来像telephones
等。人。应该是对象的数组而不仅仅是一个对象。数组以[
开头,以]
结尾,例如:
"telephones": [
{"teltype": 1, "telnumber": "234523453245", "isprimary": 0},
{"teltype": 4, "telnumber": "657567567567", "isprimary": 0}
],
必要时,数组可以为空:
"telephones": []
答案 2 :(得分:2)
将多个电话号码作为阵列传递:
{
"mode": "ADD_CONTACT", "id": 316, "firstname": "", "lastname": "",
"telephones":
[
{"teltype": 1, "telnumber": "234523453245", "isprimary": 0},
{"teltype": 4, "telnumber": "657567567567", "isprimary": 0}
]
}
您显然需要修改服务器端脚本以期望“电话”阵列。