如何从密钥mtached的json获取值

时间:2016-04-06 07:39:48

标签: php json

我正在使用flipkart新产品api,实际上我使用数组位置从api获得所有值,但是如果键值为true,我想得到值。

{"productBaseInfoV1":{"productId":"MOBDQAYCV9JTWHGG","title":"Videocon Dost V1615","productDescription":"","imageUrls":{"400x400":"http://img.fkcdn.com/image/mobile/h/g/g/videocon-dost-v1615-400x400-imadqb7k6hzdgyd8.jpeg","200x200":"http://img.fkcdn.com/image/mobile/h/g/g/videocon-dost-v1615-200x200-imadqb7k6hzdgyd8.jpeg","unknown":"http://img.fkcdn.com/image/mobile/h/g/g/videocon-dost-v1615-original-imadqb7k6hzdgyd8.jpeg","800x800":"http://img.fkcdn.com/image/mobile/h/g/g/videocon-dost-v1615-800x800-imadqb7k6hzdgyd8.jpeg"},"productFamily":null,"maximumRetailPrice":{"amount":0.0,"currency":"INR"},"flipkartSellingPrice":{"amount":0.0,"currency":"INR"},"flipkartSpecialPrice":{"amount":0.0,"currency":"INR"},"productUrl":"http://dl.flipkart.com/dl/videocon-dost-v1615/p/itmegtdatuc7w9tz?pid=MOBDQAYCV9JTWHGG&affid=infoadspl","productBrand":"Videocon","inStock":false,"codAvailable":true,"discountPercentage":0.0,"offers":[],"categoryPath":"[[{\"node_id\":20001,\"node_name\":\"FLIPKART_TREE\"},{\"node_id\":20143,\"node_name\":\"Mobiles\"},{\"node_id\":20144,\"node_name\":\"Handsets\"}]]","styleCode":null,"attributes":{"size":"","color":"Silver","storage":"","sizeUnit":"","displaySize":""}},"productShippingInfoV1":{"shippingCharges":{"amount":0.0,"currency":"INR"},"estimatedDeliveryTime":null,"sellerName":null,"sellerAverageRating":null,"sellerNoOfRatings":0,"sellerNoOfReviews":0},"categorySpecificInfoV1":{"keySpecs":["Primary Camera: 1.3 megapixel","Sim Type: Dual Sim"],"detailedSpecs":[],"specificationList":[{"key":"GENERAL FEATURES","values":[{"key":"In the Box","value":["Mobile handset, Battery, Warranty card, Charger, Handsfree, USB Cable, User Manual"]},{"key":"Brand","value":["Videocon"]},{"key":"Model Name","value":["Dost V1615"]},{"key":"SIM Size","value":["Full Size SIM"]},{"key":"SIM Type","value":["Dual Sim"]},{"key":"Touch Screen","value":["No"]},{"key":"Handset Color","value":["Silver"]}]},{"key":"Display","values":[{"key":"Size","value":["3.5 inch"]},{"key":"Resolution","value":["QVGA, 320 x 240 Pixels"]}]},{"key":"Camera","values":[{"key":"Rear Camera","value":["Yes, 1.3 MP"]}]},{"key":"Battery","values":[{"key":"Type","value":["Li-Ion, 1800 mAh"]}]},{"key":"Memory and Storage","values":[{"key":"Expandable Memory","value":["microSD, upto 16 GB"]}]},{"key":"Internet & Connectivity","values":[{"key":"USB Connectivity","value":["Yes"]},{"key":"Audio Jack","value":["3.5 mm"]}]},{"key":"Warranty","values":[{"key":"Warranty Summary","value":["1 Year Standard Manufacturer Warranty for Mobile Handsets and 6 Months for in-box Accessories"]},{"key":"Warranty Service Type","value":["Customer needs to call/visit nearest Service centre since product comes with 1 Year Manufacturer warranty"]}]}],"booksInfo":{"language":null,"binding":null,"pages":null,"publisher":null,"year":0,"authors":[]},"lifeStyleInfo":{"sleeve":null,"neck":null,"idealFor":null}}}

这里是演示供参考 http://myperfectprice.com/flipkart.json

这是我的代码

<?php
$url='http://myperfectprice.com/flipkart.json';
$decode=file_get_contents($url);        
$product = json_decode($decode,true);
$keySpecs = $product['categorySpecificInfoV1']['keySpecs'][0];
$Brand = $product['categorySpecificInfoV1']['specificationList'][0] ['values'][1]['value'][0];
$model = $product['categorySpecificInfoV1']['specificationList'][0]['values'][2]['value'][0];
$sim_size = $product['categorySpecificInfoV1']['specificationList'][0]['values'][3]['value'][0];
$sim_type = $product['categorySpecificInfoV1']['specificationList'][0]['values'][4]['value'][0];

?>
keySpecs=<?=$keySpecs; ?><br />
Brand=<?=$Brand; ?><br />
Model=<?=$model; ?><br />
Sim_size=<?=$sim_size; ?><br />

2 个答案:

答案 0 :(得分:1)

使用in_array()查找数组中的"GENERAL FEATURES",并将specificationList分配到单独的数组中(如果存在...)

<?php
$url='http://myperfectprice.com/flipkart.json';
$decode=file_get_contents($url);        
$product = json_decode($decode,true);
if(in_array('GENERAL FEATURES',$product['categorySpecificInfoV1']['specificationList'][0]))
{
    $specificationList = $product['categorySpecificInfoV1']['specificationList'];
}
echo "<pre>"; print_r($specificationList);
?>

答案 1 :(得分:0)

我不太清楚这个问题,也许这样的事情会起作用吗?

if ( $product['categorySpecificInfoV1']['specificationList']['key'] == 'GENERAL FEATURES'){
    //get the specificationList
}