-4

この JSON 応答を処理するにはどうすればよいですか?

{"errors":[{"message":"msg","code":34}]}

理想的には、次のようなことができます。

<?php

$response = '{"errors":[{"message":"msg","code":34}]}';

$decode = json_decode($response);

echo $decode->errors->message; // error 'Notice: Trying to get property of non-object'

または、これ:

<?php

echo $decode->errors['message'] // error 'Notice: Undefined index: message'

しかし、それは明らかに正しい方法ではありません。

エラー メッセージにアクセスするにはどうすればよいですか?

4

4 に答える 4

1

使用する:

echo $decode->errors[0]->message;

構造は次のとおりです。

stdClass Object
(
    [errors] => Array
        (
            [0] => stdClass Object
                (
                    [message] => msg
                    [code] => 34
                )

        )

)
于 2013-08-31T20:55:02.010 に答える
0

あなたのエラーオブジェクトは、実際にはその中にオブジェクトを持つ配列です。それが彼らが[]示していることです。

echo $decode->errors[0]->message

これは、エラー オブジェクトである配列の最初の項目をターゲットにします。その後、プロパティにアクセスできます

于 2013-08-31T20:55:08.290 に答える
0

デコードされたオブジェクトは次のようになります

stdClass Object
(
    [errors] => Array
    (
        [0] => stdClass Object
            (
                [message] => msg
                [code] => 34
            )

    )

)

したがって、それに応じてアクセスします

eco $decode->errors[0]->message

エラー配列の最初の要素を取得するには、ID がわからない場合はリセットを使用します。

それで

$error = reset($decode->errors);
$message = $error->message;

またはphp 5.4以降

$message = reset($decode->errors)->message;

オブジェクトの構造がよくわからない場合があります。オブジェクトをうまく表示するための気の利いた小さなコード行を次に示します。

print '<pre>' . print_r($decode, TRUE) . '</pre>';
于 2013-08-31T20:56:06.273 に答える
0
$decode = json_decode($response,true);
echo $decode['error']['message']

2 番目のパラメーター true を渡して、オブジェクトドキュメントの代わりに連想配列にjson_decode変換します。$decodestdClass

于 2013-08-31T20:56:13.687 に答える