如何用PHP提取JSON文件中的barcode字段?解决未定义索引错误
解决PHP提取JSON中barcode字段的"Undefined index"错误
嘿,我一眼就瞅出问题所在啦!你的JSON结构里data是一个数组(注意它外面的方括号[]),不是单个键值对对象,所以直接写$data['data']['barcode']肯定会报错——因为$data['data']是数组,不是关联数组,自然找不到barcode这个索引。
问题分析
先再明确下你的JSON结构:
{ "data": [ { "baseSku": "71JNDAZA", "sku": "71JNDAZA08", "additionalSku": [], "barcode": "889042766774", "additionalBarcode": [], "model": "71JND", "title": "Arta Lace Ruffle Dress" } ] }
这里的data是包裹了一个对象的数组,必须先访问数组里的元素(比如第一个元素,索引为0),再从这个对象里提取barcode字段。
修改后的代码
把你获取barcode的那行代码调整一下就行:
<?php $host="localhost"; $username="root"; $password="root"; $dbname="demo"; //create a Connection $conn=mysqli_connect($host,$username,$password,$dbname); //check the connection if(!$conn) { die("connection does not established successfully :".mysqli_connect_error()); } //read the json file using php method file_get_contents('filename.json') $jsondata=file_get_contents('file.json'); //convert json into php array $data=json_decode($jsondata,true); // 先访问data数组的第一个元素,再取barcode字段 $id=$data['data'][0]['barcode']; print_r($id); ?>
运行这段代码就能输出你想要的889042766774啦!
拓展:处理多元素的情况
如果以后你的data数组里有多个商品对象,建议用foreach循环遍历,批量获取每个对象的barcode:
foreach($data['data'] as $item) { echo $item['barcode'] . "<br>"; }
内容的提问来源于stack exchange,提问作者ThisIsLegend1016
相关产品推荐
相关产品推荐

