我有一个json数组,我想通过使用for循环把json传递到最后一个元素,我想得到json数组中数组元素的数量,我在一个数组中有超过3个对象,所以我对如何解析json到最后一个元素感到困惑,我可以告诉你我的想法。
Count($json);
echo count;
for(i=0;i<l=count($json);i++)
{
then print the value of each key
}我被卡住了,因为我得到的json没有固定的长度,因为它是一个服务器响应,它可能返回一个对象一个可能是两次或三次或更多,所以我认为使用for循环会更好,因为json包含多个具有3个键的json,例如国家可以有多个州,一个州可以有多个区,请帮助我,我在过去的两天里遇到了问题谢谢。
发布于 2013-04-05 17:32:20
一个想法:
function printJson($json) {
foreach($json as $index=>$value) {
if(is_array($value)) {
printJson($value);
} else {
echo 'Value :'.$value.'<br />';
}
}
}
$stringJson = "{'location':[{...}]}"; //for example
printJson(json_decode($stringJson));发布于 2013-04-05 17:44:10
你也可以使用json_decode()解码json tring,这会给你一个php变量,然后你就可以很容易地用php迭代它了。
例如:
$string = '{"image":"fox.png","puzzlepieces":{"f":{"puzzlepiece":"one","position":"top:121px;left:389px;"},"x":{"puzzlepiece":"three","position":"top:164px;left:455px;"},"o":{"puzzlepiece":"two","position":"top:52px;left:435px;"}}}';
var_dump(json_decode($string));将输出为
object(stdClass)[1]
public 'image' => string 'fox.png' (length=7)
public 'puzzlepieces' =>
object(stdClass)[2]
public 'f' =>
object(stdClass)[3]
public 'puzzlepiece' => string 'one' (length=3)
public 'position' => string 'top:121px;left:389px;' (length=21)
public 'x' =>
object(stdClass)[4]
public 'puzzlepiece' => string 'three' (length=5)
public 'position' => string 'top:164px;left:455px;' (length=21)
public 'o' =>
object(stdClass)[5]
public 'puzzlepiece' => string 'two' (length=3)
public 'position' => string 'top:52px;left:435px;' (length=20)我的xdebug扩展在WAMP中是打开的,所以你的var_dump的格式可能会有一点不同,但是总的来说,你会从数组中得到一个php变量,你可以使用foreach或者其他循环来迭代它。
阅读有关json_decode here的更多信息
https://stackoverflow.com/questions/15830276
复制相似问题