我要求输出看起来像这样:
Response
{
error_num: 0
error_details:
[
{
"zipcode": 98119
},
{
"zipcode": 98101
}
]
}
这个值与此示例无关。
我的代码如下所示:
$returndata = array('error_num' => $error_code);
$returndata['error_details'] = $error_msg;
$temp_data = array();
$temp_value = '';
foreach ($zipcodes_array as $value) {
//$temp_data['zipcode'] = $value;
//$temp_value .= json_encode($temp_data);
$temp_value .= '{"zipcode":$value},';
}
//$returndata['test'] = $temp_value;
$returndata['zipcodes'] = $temp_value;
echo json_encode($returndata);
我的输出取决于我的不同尝试(你可以看到注释掉的东西)但基本上,我不明白第3部分(带有zipcodes的部分)没有键或定义在第一个开放括号“[”
之前以下是上述代码的输出:
{"error_num":0,"error_details":"","zipcodes":"{\"zipcode\":11111},{\"zipcode\":11112},{\"zipcode\":11113},{\"zipcode\":22222},{\"zipcode\":33333},{\"zipcode\":77325},{\"zipcode\":77338},{\"zipcode\":77339},{\"zipcode\":77345},{\"zipcode\":77346},{\"zipcode\":77347},{\"zipcode\":77396},{\"zipcode\":81501},{\"zipcode\":81502},{\"zipcode\":81503},{\"zipcode\":81504},{\"zipcode\":81505},{\"zipcode\":81506},{\"zipcode\":81507},{\"zipcode\":81508},{\"zipcode\":81509},"}
显然我没有显示填充/创建的变量,因为它是通过MySQL。价值观无关紧要。它的输出格式我试图下降。我不明白他们是如何拥有“zipcode”的:在另一个看似使用JSON_ENCODE的部分的{}括号之间的部分
它很接近,但看看它是如何仍然有“zipcodes”:在那里定义这些值所在的键是什么?我的问题是,上面的“响应”是由合作伙伴实际以JSON_ENCODE格式请求的吗?或者它是否采用某些自定义格式,我只需使用PHP的任何json功能即可完成?我可以很容易地写出来,但根据它在上面的示例中看起来的方式(响应)我认为它是使用JSON_ENCODE。
另外,它一直把它放在“不对的前面。我知道它可能就是这样,因为我是json_encode的字符串。希望你看到我正在尝试做什么
如果这只是类似JSON的自定义内容,我道歉。我试过问伙伴,但我想我不是在问正确的问题(或者是正确的人)。他们似乎永远无法给我答案。
编辑:注意我的输出中也没有任何[或]。但我的一些测试JSON_ENCODE内容中包含了一些内容。我敢肯定,只是我在这里失败了,我无法弄明白。
答案 0 :(得分:1)
如果您希望输出看起来像问题顶部的JSON输出,请编写如下代码:
$returndata = array('error_num' => $error_code);
$returndata['error_details'] = array();
foreach ($zipcodes_array as $value) {
$returndata['error_details'][] = array('zipcode' => (int)$value);
}
echo 'Response ' . json_encode($returndata);
这将返回格式,如上所述。
Response
{
error_num: 0
error_details:
[
{
"zipcode": 98119
},
{
"zipcode": 98101
}
]
}
答案 1 :(得分:1)
您可以使用单个ZipCode对象作为关联数组,将所有小型ZipCode对象推送到ZipCodes数组并编码整个数据结构。这是代码示例:
$returndata = array(
'error_num' => $error_code,
'error_details' => array()
);
foreach ($zipcodes_array as $value) {
$returndata['error_details'][] = array('zipcode' => $value);
}
echo json_encode($returndata);