我正在使用PHP构建JSON,并且无法引用密钥, 因为我需要将它导入Neo4j。
我正在使用它在PHP中构建它,在循环中:
$contacts[$contact_key]["addr"][$addr_key]["zipcode"] = $zip_match[0];
$contacts[$contact_key]["addr"][$addr_key]["housenumber"] = $house_match[0];
最终我使用:
$reencoded = json_encode($contacts, JSON_UNESCAPED_UNICODE);
$reencoded = preg_replace('/"([^"]+)"\s*:\s*/', '$1:', $reencoded);
所以这是JSON字符串结果的一部分:
{addr:{1:{zipcode:"1315 GN",housenumber:"1229P;"}}
但我不能使用1:
,2:
之类的数字键。
因为这在Neo4j中给我一个错误。
我更喜欢这种格式:
{addr: [{zipcode:"1315 GN",housenumber:"1229P"}]
如何为联系人列出地址列表, 没有数字键?
答案 0 :(得分:2)
不要尝试从JSON中删除$addr_key
中的数字键,而是不要将它们包括在内。
对于循环内的代码,您可以使用[]
添加地址,如下所示:
$address = ['zipcode' => $zip_match[0], 'housenumber' => $house_match[0]];
$contacts[$contact_key]["addr"][] = $address;