Как получить данные JSON из API


Я использовал поиск символов yahoo

Http://d.yimg.com/autoc.finance .yahoo.com/autoc?запрос= yahoo и обратный вызов= YAHOO.Финансы.Символы suggest.sscallback

, который возвращает данные в формате JSON. например, следующее

YAHOO.Finance.SymbolSuggest.ssCallback(
{
    "ResultSet": {
        "Query": "ya",
        "Result": [
            {
                "symbol": "YHOO",
                "name": "Yahoo! Inc.",
                "exch": "NMS",
                "type": "S",
                "exchDisp": "NASDAQ"
            },
            {
                "symbol": "AUY",
                "name": "Yamana Gold, Inc.",
                "exch": "NYQ",
                "type": "S",
                "exchDisp": "NYSE"
            },
            {
                "symbol": "YZC",
                "name": "Yanzhou Coal Mining Co. Ltd.",
                "exch": "NYQ",
                "type": "S",
                "exchDisp": "NYSE"
            },
            {
                "symbol": "YRI.TO",
                "name": "YAMANA GOLD INC COM NPV",
                "exch": "TOR",
                "type": "S",
                "exchDisp": "Toronto"
            },
            {
                "symbol": "8046.TW",
                "name": "NAN YA PRINTED CIR TWD10",
                "exch": "TAI",
                "type": "S",
                "exchDisp": "Taiwan"
            },
            {
                "symbol": "600319.SS",
                "name": "WEIFANG YAXING CHE 'A'CNY1",
                "exch": "SHH",
                "type": "S",
                "exchDisp": "Shanghai"
            },
            {
                "symbol": "1991.HK",
                "name": "TA YANG GROUP",
                "exch": "HKG",
                "type": "S",
                "exchDisp": "Hong Kong"
            },
            {
                "symbol": "1303.TW",
                "name": "NAN YA PLASTIC TWD10",
                "exch": "TAI",
                "type": "S",
                "exchDisp": "Taiwan"
            },
            {
                "symbol": "0294.HK",
                "name": "YANGTZEKIANG",
                "exch": "HKG",
                "type": "S",
                "exchDisp": "Hong Kong"
            },
            {
                "symbol": "YAVY",
                "name": "Yadkin Valley Financial Corp.",
                "exch": "NMS",
                "type": "S",
                "exchDisp": "NASDAQ"
            }
        ]
    }
}
)

Я хочу получить результат 1-го массива данных

Я пытаюсь использовать приведенное ниже, но это не работает для меня

$file = "http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=yahoo&callback=YAHOO.Finance.SymbolSuggest.ssCallback";
$data = file_get_contents($file);
$result = json_decode($data);

Я хочу получить результат 1-й символ массива

Я использовал

$result ['YAHOO.Finance.SymbolSuggest.ssCallback']['ResultSet']['result']['symbol']

Это не работает на меня, пожалуйста помогите мне, как я могу получить символ из вышеупомянутого API

Спасибо Санджиб

Author: Hayley Guillou, 2015-07-10

2 answers

Попробуйте это

<?php
$file = "http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=yahoo&callback=YAHOO.Finance.SymbolSuggest.ssCallback";
$data = file_get_contents($file);
$data = mb_substr($data, strpos($data, '{'));
$data = mb_substr($data, 0, -1);
$result = json_decode($data, true);
print_r($result['ResultSet']['Result'][0]);
 6
Author: Endijs, 2015-07-10 06:21:22

Просто удалите параметр обратного вызова из URL-адреса запроса. Затем вам будет предоставлен действительный JSON-объект. Например, в вашем случае это будет:
http://d.yimg.com/autoc.finance .yahoo.com/autoc?запрос= yahoo
Вместо того, чтобы:
http://d.yimg.com/autoc.finance .yahoo.com/autoc?запрос= yahoo и обратный вызов= YAHOO.Финансы.Символы suggest.sscallback

 0
Author: Clox, 2016-01-26 09:44:07