PHP JSON编码问题:将地址转为公司对象数组属性的子对象
解决PHP生成目标JSON结构的问题
我来帮你搞定这个问题!你想要把地址包装成独立JSON对象,再纳入公司对象的数组属性里,但代码里的语法错误导致没生效,咱们一步步修正:
问题分析
你写的{[ $result2]}是PHP不支持的语法,PHP里要生成JSON对象对应的结构,得用关联数组,数组则用普通的[]语法,不能混合写。
正确代码示例
假设$randomname的值是company_address_ibfk_1,$result2是地址字符串"123 Main Street N/A Cincinnati Ohio 45500",正确写法如下:
// 先拼接好目标键名 $targetKey = 'post_company_success_' . $randomname; // 构建符合需求的数组结构 $real = json_encode([ $targetKey => [ // 把地址包装成关联数组(JSON编码后会转为对象),再放入数组中 ['address' => $result2] ] ], JSON_PRETTY_PRINT);
生成的目标JSON结果
执行这段代码后,会得到你需要的结构:
{ "post_company_success_company_address_ibfk_1": [ { "address": "123 Main Street N\/A Cincinnati Ohio 45500" } ] }
关键说明
- 用
['address' => $result2]创建关联数组,JSON编码后会自动转为{"address": "..."}的对象结构 - 外层的
[]用来包裹这个对象,形成数组属性,完美匹配你要的“公司对象的数组属性”要求
内容的提问来源于stack exchange,提问作者James Shelton
相关产品推荐
相关产品推荐

