需要注意的是,这个attribute:[]不是一个有效的JSON对象的错误提示,并不是attributes这个参数出错。
经过我一天的排查,终于发现问题所在,是你其中一个参数不正确。
我这里报错是设置了错误的售卖时间格式。
全天售卖我以为是设置空数组。
$properties['sellingTime']=[];
如果你也出现了这种错误提示,可以参考我的排查方法。
使用API调试工具
https://open.shop.ele.me/openapi/debug/eleme-product/eleme-product-item-updateItem
当调试之后,把预览参数拷贝下来,字符串转数组。再测试,如果更新成功,再用本地数据逐一替换。直到问题复现。
$str = '{
"properties": {
"name": "宫保鸡丁67",
"description": "香脆可口,外焦里嫩",
"sellingTime": {
"weeks": [
"MONDAY"
],
"beginDate": "2017-03-14",
"endDate": "2017-06-22",
"times": [
{
"beginTime": "18:02",
"endTime": "19:02"
}
]
},
"backCategoryId": 126,
"minPurchaseQuantity": 2,
"unit": "份",
"setMeal": 1,
"imageLinkageType": 1
}
}';
$test_arr = json_decode($str, true);