繁体   English   中英

使用 php 从 jsonp 获取值

[英]get value from jsonp using php

我有如下的 jsonp

jsonp([
{"id":"HK\/HKD","bid":"40.14700","ask":"40.24300","high":"40.19500","low":"0.00000","vol":"0.03"},
{"id":"AUD\/JPY","bid":"58.69800","ask":"58.78200","high":"58.74000"}])

我正在尝试使用 json_decode 从中获取数据,但它对我来说效果不佳。 我想获得价值

HK/HKD called ask

AUD/JPY called ask

但我无法得到它。 让我知道是否有人可以帮助我得到它。 谢谢!

使用额外的jsonp(和 closing ) ,您需要在解码之前将它们剥离。 在解码之前只需使用substr()删除它们......

$json = 'jsonp([
{"id":"HK\/HKD","bid":"40.14700","ask":"40.24300","high":"40.19500","low":"0.00000","vol":"0.03"},
{"id":"AUD\/JPY","bid":"58.69800","ask":"58.78200","high":"58.74000"}])';

$json = substr($json, 6, strlen($json)-7);
print_r(json_decode($json, true));

给...

Array
(
    [0] => Array
        (
            [id] => HK/HKD
            [bid] => 40.14700
            [ask] => 40.24300
            [high] => 40.19500
            [low] => 0.00000
            [vol] => 0.03
        )

    [1] => Array
        (
            [id] => AUD/JPY
            [bid] => 58.69800
            [ask] => 58.78200
            [high] => 58.74000
        )

)

更好的方法是尝试在数据源中删除这些部分。

<?php
  $items = json_decode('[{"id":"HK\/HKD","bid":"40.14700","ask":"40.24300","high":"40.19500","low":"0.00000","vol":"0.03"},
  {"id":"AUD\/JPY","bid":"58.69800","ask":"58.78200","high":"58.74000"}]');

  foreach ($items as $item) {
  var_dump($item->id);
}

这个对我有用。 你能试试这个吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM