首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用for循环解析json数组元素以逐个获取值

问如何使用for循环解析json数组元素以逐个获取值
EN

Stack Overflow用户
提问于 2013-04-05 17:25:53
回答 2查看 285关注 0票数 0

我有一个json数组,我想通过使用for循环把json传递到最后一个元素,我想得到json数组中数组元素的数量,我在一个数组中有超过3个对象,所以我对如何解析json到最后一个元素感到困惑,我可以告诉你我的想法。

代码语言:javascript
复制
Count($json);
 echo count;
  for(i=0;i<l=count($json);i++)
 {
 then print the value of each key
 }

我被卡住了,因为我得到的json没有固定的长度,因为它是一个服务器响应,它可能返回一个对象一个可能是两次或三次或更多,所以我认为使用for循环会更好,因为json包含多个具有3个键的json,例如国家可以有多个州,一个州可以有多个区,请帮助我,我在过去的两天里遇到了问题谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-04-05 17:32:20

一个想法:

代码语言:javascript
复制
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));
票数 1
EN

Stack Overflow用户

发布于 2013-04-05 17:44:10

你也可以使用json_decode()解码json tring,这会给你一个php变量,然后你就可以很容易地用php迭代它了。

例如:

代码语言:javascript
复制
$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));

将输出为

代码语言:javascript
复制
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的更多信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15830276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档