Как я могу разобрать этот массив JSON?Кажется, это объект - PullRequest
0 голосов
/ 29 февраля 2012

Надеюсь, вы можете помочь.Я искал, но безрезультатно.Мне нужно знать, как прочитать этот массив json в отдельные переменные php, а затем добавить его в таблицу MySQL: -

stdClass Object
(
    [status] => ok
    [search] => search_data
    [pagination] => Array
        (
            [next] => /search/data/?query=landrover&limit=3
        )

    [data] => Array
        (
            [0] => Array
                (
                    [domain] => fourwheeler.com
                    [description] => Landrover
                    [user] => Array
                        (
                            [username] => jlyon
                            [full_name] => j lyon
                            [image_url] => http://example.jpg
                            [id] => 200902970785661194
                        )
                    [counts] => Array
                        (
                            [datacount] => 4
                            [comments] => 0
                            [likes] => 0
                        )
                    [id] => 200902833346737840
                    [created_at] => 2011-08-30T05:23:45
                )
            [1] => Array
                (
                    [domain] => 4x4forum.co.uk
                    [description] => Defender
                    [user] => Array
                        (
                            [username] => tjeffries
                            [full_name] => T Jeffries
                            [image_url] => http://example.jpg
                            [id] => 200902970785661194
                        )
                    [counts] => Array
                        (
                            [datacount] => 3
                            [comments] => 2
                            [likes] => 34
                        )
                    [id] => 200902833346737840
                    [created_at] => 2011-09-02T05:12:57
                )

            [2] => Array
                (
                    [domain] => tumblr.com
                    [description] => rangerover
                    [user] => Array
                        (
                            [username] => pjackson
                            [full_name] => p jackson
                            [image_url] => http://example.jpg
                            [id] => 200902970785661194
                        )
                    [counts] => Array
                        (
                            [datacount] => 24
                            [comments] => 3
                            [likes] => 9
                        )
                    [id] => 200902810506737091
                    [created_at] => 2011-09-230T05:19:35
                )

        )

    [query] => landrover
    [counts] => Array
        (
            [places] => 3
            [datapoints] => 500
            [user] => 0
        )

    [pages] => 3
)

Я пытался сделать это, но безуспешно.

$JSON_Data = json_decode($JSON,true);

foreach($json_output['data'] as $key => $val) {

$domain = ($json_output['data'][$key]['domain']);   
echo $domain."<br/>";
}

Может ли кто-нибудь помочь мне спать сегодня вечером, не рвя волосы?; -)

Спасибо

Джонатан

1 Ответ

0 голосов
/ 29 февраля 2012

То, что вы скопировали в своем вопросе, является объектом.Это то, что вы используете json_decode (), потому что это не сработает.Это уже и объект, и вам просто нужно перебрать объект (на самом деле это смесь массивов в объекте).

Я бы настроил код, который вы включили, следующим образом:

//assuming $JSON is not an object already. If it is, ignore this line:
$jsonData = json_decode($JSON); 

foreach($jsonData->data as $val) {
   echo $val['domain'] . '<br/>';
}
...