首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >检索Data fromJSON

检索Data fromJSON
EN

Stack Overflow用户
提问于 2018-05-29 02:20:33
回答 4查看 38关注 0票数 -1

我有一个XML,我将其解析为JSON并将其放入数组中。因此,我得到了以下信息:

代码语言:javascript
复制
{
    "result": {
        "stats": {
            "count":"0"
        }
    }
}

但我无法从数组中检索数据,尝试执行以下操作:

代码语言:javascript
复制
$yummy = json_decode($json);
echo $yummy->count; //0

谢谢你的帮助

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-05-29 02:29:09

函数json_decode返回一个混合变量,您可以通过传递第二个参数true来强制它返回一个关联数组:

$yummy = json_decode($json, true);

然后,您可以像在数组中一样访问您的值:echo $yummy['result']['stats']['count'];

票数 0
EN

Stack Overflow用户

发布于 2018-05-29 02:23:08

该对象只有一个属性,名为result,而不是count

您不能从顶层开始在数据结构中的任何点访问随机属性。您必须遍历您想要访问的数据的所有祖先。

票数 0
EN

Stack Overflow用户

发布于 2018-05-31 17:41:52

将XML转换为JSON意味着您将丢失信息和特性。实际上,转换并不是必需的。SimpleXML提供了类似的语法,而对于DOM,您可以使用Xpath表达式。

代码语言:javascript
复制
$xml = <<<'XML'
<response>
  <result>
    <stats>
      <count>21</count>
    </stats>
  </result>
</response>
XML;

// SimpleXML maps elements to properties
$response = new SimpleXMLElement($xml);
var_dump(
  (int)$response->result->stats->count
);

// DOM can use Xpath expressions to extract values
$document = new DOMDocument();
$document->loadXml($xml);
$xpath = new DOMXpath($document);
var_dump(
  $xpath->evaluate('number(/response/result/stats/count)')
);

输出:

代码语言:javascript
复制
int(21)
float(21)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50571750

复制
相关文章

相似问题

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