从British Air quality等公共API获取一些Json数据的最佳方法是什么,并创建一个新端点,其中一些数据的名称不同,如
{
"data":[{
"from": "2018-03-17T22:00Z",
"to": "2018-03-17T22:30Z",
"intensity": {
"forecast": 251,
"actual": 250,
"index": "moderate"
}
}]
}
对此(我正在删除一些我不需要的信息)
{
"Weather": [
{"newName": "forecastValue"},
{"newName2": "ActualValue"}
]
}
我正面临这个问题,因为我正在使用第三方应用程序,如果它的格式是这样的话,它只支持Json(2个值和特殊名称)......
非常感谢您提前寻求帮助!
答案 0 :(得分:0)
这给出了一个稍微不同的json字符串作为输出,但我会说它比你的建议更有用
<?php
$in = '{
"data":[{
"from": "2018-03-17T22:00Z",
"to": "2018-03-17T22:30Z",
"intensity": {
"forecast": 251,
"actual": 250,
"index": "moderate"
}
}]
}';
$jin = json_decode($in);
$out = [];
$out = new stdClass();
$out->weather = ['newName'=>$jin->data[0]->intensity->forecast,
'newName2' =>$jin->data[0]->intensity->actual
];
$out = json_encode($out);
echo $out;
结果
{"weather":{"newName":251,"newName2":250}}
答案 1 :(得分:0)
假设a)您在问题上添加的JavaScript标记意味着您希望它在JavaScript中,并且b)您的JSON位于名为jsonData的变量中...
var dataObj = JSON.parse(jsonData);
var intensityData = dataObj.data[0].intensity;
var outputData = {forecast: intensityData.forecast, actual: intensityData.actual};
var jsonOutput = JSON.stringify(outputData);
答案 2 :(得分:0)
JavaScript解决方案:
var orginalJSON = {
"data":[{
"from": "2018-03-17T22:00Z",
"to": "2018-03-17T22:30Z",
"intensity": {
"forecast": 251,
"actual": 250,
"index": "moderate"
}
}]
};
var newJSON = {
"Weather": [
{"newName": orginalJSON.data[0].intensity.forecast},
{"newName2": orginalJSON.data[0].intensity.actual}
]
};
console.log(newJSON);