0

私は古典的なJSONの問題を抱えており、多くの投稿がそれについて尋ねていることを知っています...しかし、私が取得しようとしているJSONが正しい構造を持っているとは思えません。

ファイルは次のように始まります:

[{
"time":"0-12h",
"articles":[
{
"id":1,
"domain_id":22,
"title":"Hi Guys"
 }

{
"id":2,
"domain_id":17,
"title":"Hi everyone"
 }

]

}]

タイトルをエコーするために多くの組み合わせを試しました:

$data = json_decode($json, true);
echo $data->articles;    

または

echo $data->articles->title;

または

echo $data->articles[0]->title;

何も機能しません... :(助けてもらえますか?ありがとう!

4

3 に答える 3

1

の 2 番目の引数は、JSON のオブジェクトではなく、連想配列を作成する必要があることtrueを意味します。したがって、Explosion Pills が指摘するようにインデックス付き配列を処理することに加えて、配列構文を使用してキー付き要素にアクセスする必要もあります。json_decode(){}

$data[0]['articles'][0]['title']

->構文を使用できるようにする場合は、2 番目の引数を省略するか、に設定しfalseます。

質問に書き写す際に、JSON のコンマが欠落していることがエラーであることを願っています。そうでない場合は、最初に JSON を作成するコードも修正する必要があります。

于 2013-06-24T15:55:32.197 に答える
0

ありcomma、欠品

}
,
{

json_decode2 番目のパラメーターを使用するとtrue、配列が返されます

print_r($data['articles']);

エコー$data['articles']が出力されますArray

于 2013-06-24T15:52:23.977 に答える
0

$dataそれ自体が配列です。試す

$data[0]->articles[0]->title;

また、JSON は有効ではありません (2 番目の article 配列要素の前にカンマがありません)。

于 2013-06-24T15:51:10.840 に答える