我试图访问该字段' 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, "+" );
};
提前致谢
答案 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