在php中显示json内容

时间:2015-03-03 22:11:45

标签: php json

我有这个从ebay api获得的json文件,我试图回应它。 如何达到特定值,例如title,galleryURL,viewItemURL等。

这就是我尝试并收到错误的方法

<?php
$json = file_get_contents('ebay api url');
$obj = json_decode($json);
echo $obj-> item[0]->title;

?>

我放置了项目[0],因为我通常会在json中收到一堆项目 这是json文件

  

{ “findItemsIneBayStoresResponse”:[{ “ACK”:[ “成功”], “版本”:[ “1.13.0”], “时间戳”:[ “2015-03-03T22:06:11.764Z”] , “信息搜索结果”:[{ “@计”: “1”, “项目”:[{ “的itemId”: “121579650061”], “称号”:“麦考尔的   9119 18 \“娃娃图案卡车箱和配件携带箱娃娃箱   “],” globalId “:[” EBAY-US “],” primaryCategory “:[{” 的categoryId “:[” 38057 “],” 类别名称 “:[” 娃娃,   玩具,   动物 “]}],” GALLERYURL “:[” http://thumbs2.ebaystatic.com/m/mBpbx-hUvsUvTKYMVasM8xA/140.jpg “],” viewItemURL “:[” http://www.ebay.com/ ITM / McCalls-9119-18-娃娃PatternCarry-病例和附件进位病例娃娃Trunk- / 121579650061 PT = LH_DefaultDomain_0 “],” PAYMENTMETHOD? “:[” 贝 “],” 自动转账“:[ “假”],​​ “POSTALCODE”: “85260”], “位置”: “亚利桑那州斯科茨代尔,美国”], “国家”: “US”], “storeInfo”:[{ “STORENAME”: “缝   可爱   图案 “],” storeURL “:[” http://stores.ebay.com/Sew-Lovely-Patterns “]}],” shippingInfo “:[{” shippingServiceCost “:[{” @currencyId “:” USD” “的”: “0.0”}], “shippingType”:[ “FlatDomesticCalculatedInternational”], “shipToLocations”:[ “全球”], “expeditedShipping”:[ “假”],​​“oneDayShippingAvailable “:[” 假 “],” handlingTime “:[” 1 “]}],” sellingStatus “:[{” currentPrice “:[{” @ currencyId “:” USD “” 的 “:” 21.99 “}],” convertedCurrentPrice “:[{” @ currencyId “:” USD”, “的”: “21.99”}], “sellingState”:[ “活动”], “的timeleft”:[ “P22DT22H41M24S”]}], “listingInfo”:[{ “bestOfferEnabled”:[ “假”],​​ “buyItNowAvailable”:[ “假”],​​ “开始时间”:[“2015-02-24T20: 42:35.000Z “],” 结束时间 “:[” 2015-03-26T20:47:35.000Z “],” listingType “:[” StoreInventory “],” 礼品 “:[” 假 “]}],” returnsAccepted “:[” 真 “],” galleryPlusPictureURL “:[” http://galleryplus.ebayimg.com/ws/web/121579650061_1_0_1.jpg “],” 状态 “:[{” conditionId “:[” 1000" ], “conditionDisplayName”: “新”]}], “isMultiVariationListing”: “假”],​​” topRatedListing “:[” 假 “]}]}],” paginationOutput “:[{” PAGENUMBER “:[” 1 “],” entriesPerPage “:[” 1 “],” 总页数 “:[” 117 “],”为totalEntries “:[” 117 “]}],” itemSearchURL “:[” http://stores.ebay.com/Sew-Lovely-Patterns/_i.html?_saslop=1&_fss=1&LH_SpecificSeller=1&_ddo = 1&安培; _exmaitems = 1&安培; _ipg = 1&安培; _mPrRngCbx = 1&安培; _OS = ST%7CD&安培; _pgn = 1&安培; _sid = 181133160&安培; _ssn = sewlovelypatterns&安培; _udlo = 11" ]}]}

1 个答案:

答案 0 :(得分:2)

您只需要对JSON进行一些分析。只需将其写入文件(例如response.json)并执行以下JSON。

cat response.json | python -mjson.tool

现在您可以在JSON中观察完整的层次结构。使用以下内容将其转换为PHP Associative Array

$obj = json_decode($json, true);    // note the 'true'

完成后,您可以轻松地通过索引访问: 例如要获得标题,您需要以下访问权限

$obj["findItemsIneBayStoresResponse"][0]["searchResult"][0]["title"]

这是我通过漂亮打印JSON得出的结果。我建议你参考eBay API,了解它如何构建响应JSON的层次结构。如果您不知道如何阅读关联数组,请阅读[PHP Arrays Documentation]中的一些示例。(http://php.net/manual/en/language.types.array.php)。