【问题标题】:Trying to get value from json object [duplicate]试图从json对象中获取价值[重复]
【发布时间】:2016-04-08 23:16:50
【问题描述】:

我有这个 JSON:来自here 的完整 json。我尝试关注this,但我很难这样做

results: [
    {
        marketcap_price/_currency: "USD",
        available_link_numbers/_source: "15,045,750",
        marketcap_price/_source: "$ 6,509,092,365",
        number: 1,
        name_link/_text: "Bitcoin",
        name_link/_source: "/currencies/bitcoin/",
        number/_source: "1",
        price_link/_source: "/currencies/bitcoin/#markets",
        available_link: "http://blockchain.info",
        name_image/_source: "/static/img/coins/16x16/bitcoin.png",
        price_link/_text: "$ 432.62",
        pricegraph7d_link/_source: "/currencies/bitcoin/#charts",
        price_link: "http://coinmarketcap.com/currencies/bitcoin/#markets",
        pricegraph7d_image: "https://files.coinmarketcap.com/generated/sparklines/1.png",
        volume24h_link/_source: "/currencies/bitcoin/#markets",
        change24h_value: "0.39 %"
    }
]

当我这样做时

echo $obj->results[0]->number;

它输出值

 1

但是当我尝试这样做时

echo $obj->results[0]->price_link/_text;

它什么也没给我。我为此使用 PHP。它应该输出

$432.62

有什么方法可以让我获得这个价格价值?我究竟做错了什么?另外,是否可以仅使用数字而不使用“$”符号来获取值?

【问题讨论】:

  • 请用您的确切 json 字符串更新您的问题,您现在拥有的是无效 json,您可以在 jsonlint.com 验证它
  • 您能否尝试执行以下操作:$obj = json_decode($variable, true);,然后尝试回显$obj['results']['price_link/_text'];
  • 属性名称中/ 的使用是否可以更改?我不确定 PHP 是否支持在属性名称中使用该字符。
  • 我已经更新了 json 来自的位置
  • 我无法更改 /。它来自 www.import.io

标签: php json


【解决方案1】:

price_link/_text 不是有效的 PHP 变量名。您必须使用以下方法之一:

使用{} 作为自定义名称:$obj->results[0]->{'price_link/_text'}

以数组形式访问数据:$obj['results'][0]['price_link/_text'](使用json_decode($json, true)以数组形式获取信息)。

【讨论】:

  • $obj->results[0]->{'price_link/_text'} 工作
猜你喜欢
  • 1970-01-01
  • 2019-05-27
  • 2016-05-29
  • 2016-04-04
  • 2017-11-01
  • 2013-04-11
  • 2012-09-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多