访问解码的json字符串PHP中的字段

时间:2015-04-29 13:28:12

标签: php json

我试图访问该字段' id'使用php在这个解码的json字符串中的第一首歌。我尝试了所有可能的组合,如下所示:

$响应 - >歌曲[0] - >编号

这是我解码的json字符串:

jQuery.param = function( a, traditional ) {
    var prefix,
        s = [],
        add = function( key, value ) {
            // If value is a function, invoke it and return its value
            value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
            s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
        };

    // Set traditional to true for jQuery <= 1.3.2 behavior.
    if ( traditional === undefined ) {
        traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
    }

    // If an array was passed in, assume that it is an array of form elements.
    if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
        // Serialize the form elements
        jQuery.each( a, function() {
            add( this.name, this.value );
        });

    } else {
        // If traditional, encode the "old" way (the way 1.3.2 or older
        // did it), otherwise encode params recursively.
        for ( prefix in a ) {
            buildParams( prefix, a[ prefix ], traditional, add );
        }
    }

    // Return the resulting serialization
    return s.join( "&" ).replace( r20, "+" );
};

提前致谢

2 个答案:

答案 0 :(得分:2)

$id = $json_array['response']['songs'][0]['id'];

解释

看一下响应,你的响应是一个多维数组,这意味着你有一个由几个数组组成的数组,每个数组都可以包含一个或多个数组。

在第一个数组中你有“响应”,这个包含其余部分,所以..

$id = $json_array['response']

从这个数组中你必须在里面嵌套,直到得到你想要的元素。哪个包含在另一个数组歌曲中,所以..

$id = $json_array['response']['songs']

这个有几个用数字索引的元素,因为你想要第一首歌我们选择0元素的id,

$id = $json_array['response']['songs'][0]

之后你可以得到你想要的元素:

$id = $json_array['response']['songs'][0]['id'];

答案 1 :(得分:0)

json_decode返回数组,所以要访问你这样做:

$id = $json_array['response']['songs'][0]['id'];

如果您想以对象方式工作,则需要转换:

$object = (object) $json_array;
$object->response->songs[0]->id