php - dreamfactory php 脚本 post.post_process 有效载荷修改
问题描述
嗨,我使用 Dreamfactory 作为 REST API 后端,我需要一个 PHP 脚本来预处理一个 POST api 请求,该请求可以修改我收到的有效负载:
{“时间”:“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);
推荐阅读
- javascript - 如何在消息框弹出窗口上对按钮进行样式设置
- azure-cognitive-services - 在图像中查找徽标
- qt5 - 如何在 QCreator 中更改可执行文件的路径?
- format - 没有 JFIF 标头的 EXIF JPEG 文件的 MIME 类型是什么?
- java - Java Swing中的JButton悬停动画
- monaco-editor - 主题:滚动条托盘背景的颜色名称
- python - 在 plotly 中添加滑块以绘制带有子图的图形
- excel - 如何将这样的公式/计算插入到 Excel 中的 IFS 或其他类似函数中?
- c++ - 在 Eclipse 中使用 libtom/lbtomcrypt
- android - Android ScrollView 奇怪的滚动行为