解析json数组不会给我值

时间:2014-12-24 09:22:46

标签: php

下面是我的' script.json'带有json数组的文件,我想要webUseridwebPassword

的值
{
   "totalSize":2,
   "webUserId":"abc",
   "webPassword":"def",
   "operation":"send",
   "testMode":true,
   "records":[
      {
         "phoneNumber":"1908908399",
         "message":"Happy Birthday",
         "Id":"a0YL0000008QYunMAG",
         "deviceId":"ABCDEFXABCDEF"
      }

   ]
}

我在下面尝试了但没有得到结果

 <?php
       $jsonString=file_get_contents("script.json");
       $decoded=json_decode($jsonString,true);
       foreach($decoded->data as $name){
            echo $name->totalSize;
       }
?> 

3 个答案:

答案 0 :(得分:1)

Zarif,尝试以下代码,100%工作.........:)

<?php
   $jsonString=file_get_contents("script.json");
   $decoded=array(json_decode($jsonString,true));
   foreach($decoded as $name){
        echo $name['totalSize'];
   }
?> 

答案 1 :(得分:0)

您当前的示例中不需要foreach循环,因为您只有一个级别。

您的主要问题是,当您之前声明要将结果作为关联数组时,您尝试将json_decode的结果用作对象。

json_decode的第二个参数指定了返回值的格式,以便您完成

$decoded = json_decode($jsonString, true);

您将收到一个数组,您可以像

一样访问该数组
echo $decoded['totalSize'];

如果你想在你的问题中把它当作对象处理,要么是状态false要么在json_decode中省略第二个参数(默认情况下它默认是假的),以及那会让你做你想做的事情:

$decoded = json_decode($jsonString);
$decoded->totalSize;

答案 2 :(得分:-1)

让我们说

$myJSON = yourPostedJSON.

$myJSON = json_decode($myJSON, true);

echo $myJSON['webUserId'];
echo $myJSON['webPassword'];