如何调整PHP代码实现MySQL数据转指定结构的JSON输出
解决方法
你需要调整两处代码逻辑,就能得到目标JSON结构:
- 修改
products的赋值方式:原来的代码通过[]=往索引数组里追加元素,导致products成为“数组嵌套对象”的结构。现在要直接将productId作为products的键,把对应数据赋值进去,让products本身成为关联数组。 - 将
inventory_id转为字符串类型:初始化时把数字2937改为字符串"2937",匹配目标结构的类型要求。
修改后的完整代码:
$arr = [ "inventory_id" => "2937", // 改为字符串类型 "products" => [], // 空数组初始化,后续自动转为关联数组 ]; $q = $dbc->query("SELECT quantity,productId FROM `Products` LIMIT 1"); while ($rs = $q->fetch_assoc()) { // 直接以productId为键赋值,替代原有的数组追加逻辑 $arr['products'][$rs['productId']] = ["bl_3369" => $rs['quantity']]; }
执行后生成的JSON结构如下,与你需要的完全一致:
{ "inventory_id": "2937", "products": { "154801353": { "bl_3369": "10" } } }
内容的提问来源于stack exchange,提问作者melvinfree
相关产品推荐
相关产品推荐

