3

サンプルコードがあります:

$description = '{"2G Network":"GSM 850 / 900 / 1800 / 1900 ","3G Network":"HSDPA 850 / 900 / 1700 / 1900 / 2100 "}';
$data = json_decode($description);
echo $data->2G Network;

 // OR echo $data['2G Network'];

結果はエラーです。修正方法を教えてください。

4

4 に答える 4

6

これを試して:

echo $data->{'2G Network'};

問題は JSON にはありませんでしたが、アクセスしようとしていたオブジェクト プロパティにスペースがありました。中括弧を使用する場合{ }、文字列を使用して、取得/設定するプロパティに名前を付けることができます。

于 2012-07-14T04:12:29.310 に答える
3

Brad のソリューションは完璧です。配列から同様のものが必要な場合は、次のように実行できます。

$description = '{"2G Network":"GSM 850 / 900 / 1800 / 1900 ","3G Network":"HSDPA 850 / 900 / 1700 / 1900 / 2100 "}';
$data = json_decode($description, true);
echo $data['2G Network'];
于 2012-07-14T04:21:22.527 に答える
1

2G と Network の間のスペースを削除するか、次を使用して json を配列にデコードできます。json_decode($description, true)

于 2012-07-14T04:13:44.830 に答える
0

関数を呼び出して、JSON のスペースを削除することができます

以下を参照して ください http://www.pukkared.com/2010/02/removing-extra-white-space-before-returning-json-data/

于 2012-07-14T04:14:32.347 に答える