嗨,我正在使用Dreamfactory作为REST API后端,并且需要一个PHP脚本来预处理POST api请求,该请求可以修改由此接收到的有效负载:
{“时间”:“ 2018-12-21T07:49:23”,“ BME680”:{“温度”:20.3,“湿度”:41.8,“压力”:1021.1,“气体”:286.65} < / p>
对此:
{“时间”:“ 2018-12-21T07:49:23”,“温度”:20.3,“湿度”:41.8,“压力”:1021.1,“气体”:286.65}
如何使用PHP脚本实现这一目标?
答案 0 :(得分:1)
首先,让我们定义一个使结果友好的辅助函数
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);