Я прошу, чтобы мой вывод выглядел следующим образом:
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);
Мой выход варьируется в зависимости от моих разных попыток (которые вы можете видеть с комментариями), но в основном я не понимаю, как третья часть (часть с 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? или это в каком-то обычном формате, который мне просто нужно будет сделать с помощью любых json-функций PHP? Я могу легко написать это, но, основываясь на том, как он выглядит в приведенном выше примере (ответ), я думал, что используется JSON_ENCODE.
Кроме того, он продолжает помещать\перед ", что тоже неправильно. Я знаю, что это, вероятно, делает это, потому что я json_encode для строки. Надеюсь, вы увидите, что я пытаюсь сделать.
Если это просто пользовательский материал, похожий на JSON, я прошу прощения. Я попытался спросить партнера, но, я думаю, я не задаю правильные вопросы (или правильный человек). Они никогда не могут дать мне ответы.
EDIT: обратите внимание, что мой вывод также не имеет [или] в нем. но некоторые из моих тестовых вещей JSON_ENCODE были в нем. Я уверен, что только я здесь не могу, я просто не могу понять это.
Если вы хотите, чтобы ваш вывод выглядел как выход 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);
Это вернет JSON, отформатированный, как вы просили выше.
Response
{
error_num: 0
error_details:
[
{
"zipcode": 98119
},
{
"zipcode": 98101
}
]
}
Можете ли вы просто использовать один объект 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);