0

任何人都可以帮助我如何从 yql 生成的这个 json 脚本中获取数据。我想将数据存储到从这里抓取的 mysql... 我想提取或抓取数据 AskRealtime、BidRealtime、LastTradeDate、LastTradePriceOnly、LastTradeTime、Ask

<?php
session_start();
query= Insert into table .....value ...
?>

我想从下面的 json 做类似上面脚本的事情。如果我可以直接将提取的数据打印到其中一个 html 表中的同一页面而不将其发送到 mysql 并从那里提取数据,那就更好了...

`{

"query": {
    "count": 5,
    "created": "2012-05-11T01:14:55Z",
    "lang": "en-US",
    "diagnostics": {
        "publiclyCallable": "true",
        "redirect": {
            "from": "http://datatables.org/alltables.env",
            "status": "301",
            "content": "http://www.datatables.org/alltables.env"
        },
        "url": [
            {
                "execution-start-time": "425",
                "execution-stop-time": "865",
                "execution-time": "440",
                "proxy": "DEFAULT",
                "content": "http://datatables.org/alltables.env"
            },
            {
                "execution-start-time": "884",
                "execution-stop-time": "1097",
                "execution-time": "213",
                "proxy": "DEFAULT",
                "content": "http://www.datatables.org/yahoo/finance/yahoo.finance.quotes.xml"
            },
            {
                "execution-start-time": "1307",
                "execution-stop-time": "1307",
                "execution-time": "0",
                "proxy": "DEFAULT",
                "content": "http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=XAUUSD%3DX,XAGUSD%3DX,PLN12.NYM,PAK12.NYM,USDCAD%3DX"
            }
        ],
        "query": {
            "execution-start-time": "1105",
            "execution-stop-time": "1308",
            "execution-time": "203",
            "params": "{url=[http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=XAUUSD%3DX,XAGUSD%3DX,PLN12.NYM,PAK12.NYM,USDCAD%3DX]}",
            "content": "select * from csv where url=@url and columns='Ask,AverageDailyVolume,Bid,AskRealtime,BidRealtime,BookValue,Change&PercentChange,Change,Commission,ChangeRealtime,AfterHoursChangeRealtime,DividendShare,LastTradeDate,TradeDate,EarningsShare,ErrorIndicationreturnedforsymbolchangedinvalid,EPSEstimateCurrentYear,EPSEstimateNextYear,EPSEstimateNextQuarter,DaysLow,DaysHigh,YearLow,YearHigh,HoldingsGainPercent,AnnualizedGain,HoldingsGain,HoldingsGainPercentRealtime,HoldingsGainRealtime,MoreInfo,OrderBookRealtime,MarketCapitalization,MarketCapRealtime,EBITDA,ChangeFromYearLow,PercentChangeFromYearLow,LastTradeRealtimeWithTime,ChangePercentRealtime,ChangeFromYearHigh,PercebtChangeFromYearHigh,LastTradeWithTime,LastTradePriceOnly,HighLimit,LowLimit,DaysRange,DaysRangeRealtime,FiftydayMovingAverage,TwoHundreddayMovingAverage,ChangeFromTwoHundreddayMovingAverage,PercentChangeFromTwoHundreddayMovingAverage,ChangeFromFiftydayMovingAverage,PercentChangeFromFiftydayMovingAverage,Name,Notes,Open,PreviousClose,PricePaid,ChangeinPercent,PriceSales,PriceBook,ExDividendDate,PERatio,DividendPayDate,PERatioRealtime,PEGRatio,PriceEPSEstimateCurrentYear,PriceEPSEstimateNextYear,Symbol,SharesOwned,ShortRatio,LastTradeTime,TickerTrend,OneyrTargetPrice,Volume,HoldingsValue,HoldingsValueRealtime,YearRange,DaysValueChange,DaysValueChangeRealtime,StockExchange,DividendYield'"
        },
        "javascript": {
            "execution-time": "266",
            "instructions-used": "302754",
            "table-name": "yahoo.finance.quotes"
        },
        "warning": "Unable to sort response according to field 'Ask,Bid,AskRealtime,BidRealtime,LastTradeDate,LastTradePriceOnly,LastTradeTime'.",
        "user-time": "1373",
        "service-time": "653",
        "build-version": "27222"
    },
    "results": {
        "quote": [
            {
                "symbol": "XAUUSD=X",
                "Bid": "1590.9498",
                "AskRealtime": null,
                "BidRealtime": null,
                "LastTradeDate": "5/11/2012",
                "LastTradePriceOnly": "1590.5499",
                "LastTradeTime": "9:12pm",
                "Ask": "1590.15"
            },
            {
                "symbol": "XAGUSD=X",
                "Bid": null,
                "AskRealtime": null,
                "BidRealtime": null,
                "LastTradeDate": "5/10/2012",
                "LastTradePriceOnly": "29.136",
                "LastTradeTime": "5:27pm",
                "Ask": null
            },
            {
                "symbol": "PLN12.NYM",
                "Bid": null,
                "AskRealtime": "1486.50",
                "BidRealtime": "1486.00",
                "LastTradeDate": "5/11/2012",
                "LastTradePriceOnly": "1486.00",
                "LastTradeTime": "8:44pm",
                "Ask": null
            },
            {
                "symbol": "PAK12.NYM",
                "Bid": null,
                "AskRealtime": "616.00",
                "BidRealtime": "609.40",
                "LastTradeDate": "5/11/2012",
                "LastTradePriceOnly": "658.80",
                "LastTradeTime": "8:00pm",
                "Ask": null
            },
            {
                "symbol": "USDCAD=X",
                "Bid": "1.0033",
                "AskRealtime": null,
                "BidRealtime": null,
                "LastTradeDate": "5/11/2012",
                "LastTradePriceOnly": "1.0034",
                "LastTradeTime": "9:13pm",
                "Ask": "1.0035"
            }
        ]
    }
}

}`

这个 json 脚本的链接在这里由 YQL 生成的 Json 脚本 json 脚本是从http://jsonlint.com/验证的

4

1 回答 1

1

如果我正确理解了您的问题,您是否希望使用该 JSON 并能够访问其中的数据?为了使 JSON 更易于使用,我建议使用以下代码,该代码利用json_decode 函数将 JSON 转换为 php 可用数组。(我包含了 echo 语句,以便您可以看到生成的关联数组的样子)

$yql_json =
'{
"query": {
    "count": 5,
    "created": "2012-05-11T01:14:55Z",
    "lang": "en-US",
    "diagnostics": {
        "publiclyCallable": "true",
        "redirect": {
            "from": "http://datatables.org/alltables.env",
            "status": "301",
            "content": "http://www.datatables.org/alltables.env"
        },
        "url": [
            {
                "execution-start-time": "425",
                "execution-stop-time": "865",
                "execution-time": "440",
                "proxy": "DEFAULT",
                "content": "http://datatables.org/alltables.env"
            },
            {
                "execution-start-time": "884",
                "execution-stop-time": "1097",
                "execution-time": "213",
                "proxy": "DEFAULT",
                "content": "http://www.datatables.org/yahoo/finance/yahoo.finance.quotes.xml"
            },
            {
                "execution-start-time": "1307",
                "execution-stop-time": "1307",
                "execution-time": "0",
                "proxy": "DEFAULT",
                "content": "http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=XAUUSD%3DX,XAGUSD%3DX,PLN12.NYM,PAK12.NYM,USDCAD%3DX"
            }
        ],
        "query": {
            "execution-start-time": "1105",
            "execution-stop-time": "1308",
            "execution-time": "203",
            "params": "{url=[http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=XAUUSD%3DX,XAGUSD%3DX,PLN12.NYM,PAK12.NYM,USDCAD%3DX]}",
            "content": "select * from csv where url=@url and columns=\'Ask,AverageDailyVolume,Bid,AskRealtime,BidRealtime,BookValue,Change&PercentChange,Change,Commission,ChangeRealtime,AfterHoursChangeRealtime,DividendShare,LastTradeDate,TradeDate,EarningsShare,ErrorIndicationreturnedforsymbolchangedinvalid,EPSEstimateCurrentYear,EPSEstimateNextYear,EPSEstimateNextQuarter,DaysLow,DaysHigh,YearLow,YearHigh,HoldingsGainPercent,AnnualizedGain,HoldingsGain,HoldingsGainPercentRealtime,HoldingsGainRealtime,MoreInfo,OrderBookRealtime,MarketCapitalization,MarketCapRealtime,EBITDA,ChangeFromYearLow,PercentChangeFromYearLow,LastTradeRealtimeWithTime,ChangePercentRealtime,ChangeFromYearHigh,PercebtChangeFromYearHigh,LastTradeWithTime,LastTradePriceOnly,HighLimit,LowLimit,DaysRange,DaysRangeRealtime,FiftydayMovingAverage,TwoHundreddayMovingAverage,ChangeFromTwoHundreddayMovingAverage,PercentChangeFromTwoHundreddayMovingAverage,ChangeFromFiftydayMovingAverage,PercentChangeFromFiftydayMovingAverage,Name,Notes,Open,PreviousClose,PricePaid,ChangeinPercent,PriceSales,PriceBook,ExDividendDate,PERatio,DividendPayDate,PERatioRealtime,PEGRatio,PriceEPSEstimateCurrentYear,PriceEPSEstimateNextYear,Symbol,SharesOwned,ShortRatio,LastTradeTime,TickerTrend,OneyrTargetPrice,Volume,HoldingsValue,HoldingsValueRealtime,YearRange,DaysValueChange,DaysValueChangeRealtime,StockExchange,DividendYield\'"
        },
        "javascript": {
            "execution-time": "266",
            "instructions-used": "302754",
            "table-name": "yahoo.finance.quotes"
        },
        "warning": "Unable to sort response according to field \'Ask,Bid,AskRealtime,BidRealtime,LastTradeDate,LastTradePriceOnly,LastTradeTime\'.",
        "user-time": "1373",
        "service-time": "653",
        "build-version": "27222"
    },
    "results": {
        "quote": [
            {
                "symbol": "XAUUSD=X",
                "Bid": "1590.9498",
                "AskRealtime": null,
                "BidRealtime": null,
                "LastTradeDate": "5/11/2012",
                "LastTradePriceOnly": "1590.5499",
                "LastTradeTime": "9:12pm",
                "Ask": "1590.15"
            },
            {
                "symbol": "XAGUSD=X",
                "Bid": null,
                "AskRealtime": null,
                "BidRealtime": null,
                "LastTradeDate": "5/10/2012",
                "LastTradePriceOnly": "29.136",
                "LastTradeTime": "5:27pm",
                "Ask": null
            },
            {
                "symbol": "PLN12.NYM",
                "Bid": null,
                "AskRealtime": "1486.50",
                "BidRealtime": "1486.00",
                "LastTradeDate": "5/11/2012",
                "LastTradePriceOnly": "1486.00",
                "LastTradeTime": "8:44pm",
                "Ask": null
            },
            {
                "symbol": "PAK12.NYM",
                "Bid": null,
                "AskRealtime": "616.00",
                "BidRealtime": "609.40",
                "LastTradeDate": "5/11/2012",
                "LastTradePriceOnly": "658.80",
                "LastTradeTime": "8:00pm",
                "Ask": null
            },
            {
                "symbol": "USDCAD=X",
                "Bid": "1.0033",
                "AskRealtime": null,
                "BidRealtime": null,
                "LastTradeDate": "5/11/2012",
                "LastTradePriceOnly": "1.0034",
                "LastTradeTime": "9:13pm",
                "Ask": "1.0035"
            }
        ]
    }
}
}';

$yql_results = json_decode($yql_json, true);
echo "<pre>".print_r($yql_results, true)."</pre>";

$yql_json 输入是 json 本身作为字符串(无论您如何收集和存储它),传递给函数的 true 值使函数返回一个关联数组,该数组存储在 $yql_result 中。在此之后,您可以轻松访问它的所有项目。我希望我至少回答了你的部分问题。祝你的项目好运。

于 2012-05-11T03:52:37.923 回答