0

PHPスクリプトにJSON文字列を渡そうとしていますが、電話、電子メール、FAXが0個以上ある可能性があると見なす方法で文字列を作成する方法がわかりません。

これが私の文字列がどのように見えるかの例です:

{"mode": "ADD_CONTACT", "id": 316, "firstname": "", "lastname": "", "telephones": {"teltype": 1, "telnumber": "234523453245", "isprimary": 0, "teltype": 4, "telnumber": "657567567567", "isprimary": 0}}

問題は、おそらくJSONパラメーター名が同じであるために、スクリプトで最後の電話番号しか表示されないことです。目的を達成するには、どの形式を使用する必要がありますか?「telnumber1」、「telnumber2」などのパラメータ名の末尾に増分番号を付けないようにします。

4

3 に答える 3

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
                )
        )
)
于 2012-10-30T09:31:21.090 に答える
2

telephonesそれはetのように聞こえます。al。単一のオブジェクトではなく、オブジェクトの配列である必要があります。配列は、で始まり、[で終わります]。例:

"telephones": [
    {"teltype": 1, "telnumber": "234523453245", "isprimary": 0},
    {"teltype": 4, "telnumber": "657567567567", "isprimary": 0}
],

必要に応じて、配列を空にすることができます。

"telephones": []
于 2012-10-30T09:31:25.830 に答える
2

複数の電話番号を配列として渡します。

{
    "mode": "ADD_CONTACT", "id": 316, "firstname": "", "lastname": "", 
    "telephones": 
    [
        {"teltype": 1, "telnumber": "234523453245", "isprimary": 0}, 
        {"teltype": 4, "telnumber": "657567567567", "isprimary": 0}
    ]
}

「電話」の配列を期待するように、サーバー側スクリプトを変更する必要があることは明らかです。

于 2012-10-30T09:31:28.950 に答える