Привет! Я использую Dreamfactory в качестве бэкэнда REST API, и мне нужен PHP-скрипт для предварительной обработки запроса API POST, который может изменить мою полученную полезную нагрузку:
{ «Время»: «2018-12-21T07: 49: 23», «BME680»: { «Температура»: 20,3, «Влажность»: 41,8, «Давление»: 1021,1, «Газ»: 286,65}
к этому:
{ «Время»: «2018-12-21T07: 49: 23», «Температура»: 20,3, «Влажность»: 41,8, «Давление»: 1021,1, «Газ»: 286,65}
Как я могу добиться этого с помощью сценария PHP?
Во-первых, давайте определим вспомогательную функцию, которая делает результат дружественным
function getFriendlyResult(k, input) {
var output = {};
for (var key in input) {
if (key !== k) output[key] = input[key];
}
for (var innerKey in input[k]) output[innerKey] = input[innerKey];
return output;
}
и вы можете назвать это как:
getFriendlyResult(“BME680”, {“Time”:“2018-12-21T07:49:23”,“BME680”:{“Temperature”:20.3,“Humidity”:41.8,“Pressure”:1021.1,“Gas”:286.65});
РЕДАКТИРОВАТЬ
Чтобы добиться этого в PHP, вы можете позвонить json_decode и передать свой JSON, как
$resultArray = json_decode($input, true);
а затем реализовать тот же алгоритм в PHP, как я описал выше в Javascript.
РЕДАКТИРОВАТЬ
Это непроверенная реализация в PHP:
function getFriendlyResult($k, $input) {
$output = array();
foreach ($input as $key => $value) {
if ($key !== $k) $output[$key] = $value;
}
foreach ($input[$k] as $innerKey => $innerValue) {
$output[$innerKey] = $innerValue;
}
return $output;
}
$result = json_decode($yourJSON, true);
Других решений пока нет …