javascript - 将 JSON 解析为数组中的字符串并创建嵌套对象
问题描述
我有一个嵌套数组,看起来像这样:
{
"id": 1,
"QUALITY": 91.98,
"TEMPERATURE": 20.5,
"SENSOR_DATE": "2021-09-24T04:53:06.801Z",
"SOURCE_ID": 1,
"SENSOR_NAME": "TD2",
"NEXT_OFFSET": 11931
},
我想改变这个字符串
"QUALITY": 91.98,
"TEMPERATURE": 20.5,
对此:
{
"data": [
{
"TELEMATICS": {
"QUALITY": 91.98,
"TEMPERATURE": 20.5
},
"SOURCE_ID": "1",
"SENSOR_NAME": "TD2",
"SENSOR__DATETIME": "2021-09-24T04:53:06.801Z"
},
],
"NEXT_OFFSET": 11931
}
我做了很多不同的尝试,但是这段代码我能得到的只是:
var telematics = JSON.parse(JSON.stringify(payload, ['QUALITY', 'TEMPERATURE']));
var data = JSON.parse(JSON.stringify(payload, ['SOURCE_ID', 'SENSOR_NAME', 'SENSO$
payload = JSON.parse(JSON.stringify({TELEMATICS: telematics, data}, null, 2));
payload = JSON.stringify({data: payload}, null, 2);
结果,我得到了两个不同的对象。我不能将它们组合成一个嵌套的TELEMATICS数组:
{
"QUALITY": 91.33,
"TEMPERATURE": 25.7
}
],
"data": [
{
"SOURCE_COMPONENT_ID": 1,
"SENSOR_NAME": "TD2",
"SENSOR_READING_DATETIME": "2021-09-24T04:53:06.801Z"
},
解决方案
你说你有一个数组 - 显示的第一个项目是一个对象,也许它是该数组的一个元素?让我们假设,这payload
是一个这样的对象数组。
您正在尝试在内部创建一个“数据”数组 - 带有一个元素。有必要吗?它可能有多个元素吗?让我们假设它现在只有一个元素。
const payload = [{
"id": 1,
"QUALITY": 91.98,
"TEMPERATURE": 20.5,
"SENSOR_DATE": "2021-09-24T04:53:06.801Z",
"SOURCE_ID": 1,
"SENSOR_NAME": "TD2",
"NEXT_OFFSET": 11931
}, {
"id": 2,
"QUALITY": 91.98,
"TEMPERATURE": 20.5,
"SENSOR_DATE": "2021-09-24T04:53:06.801Z",
"SOURCE_ID": 1,
"SENSOR_NAME": "TD2",
"NEXT_OFFSET": 11931
}];
const result = payload.map(({QUALITY, TEMPERATURE, NEXT_OFFSET, ...rest})=> ({
data: [{
...rest,
TELEMATICS: {
QUALITY,
TEMPERATURE
}
}],
NEXT_OFFSET
}));
console.log(result);
推荐阅读
- python - tkinter 模块中的语法错误。root = tk() TypeError: 'module' object is not callable
- html - Chrome 中的 Padding-inline-start 错误的 CSS 动画
- java - 将类类型存储为变量以在 java 的列表中识别下一个预期的对象类型
- google-bigquery - 比较 2 个表并使用具有最大值 Bigquery 的行更新最终表
- layout - 聚焦时门户行可编辑字段表现奇怪(FileMaker Pro 18)
- java - xml中的*替换表示任何字符串是什么
- wordpress - {多个项目} Woocommerce
- video-streaming - 如何对 H265/HEVC 的 RTP 数据(通过 UDP)中的碎片帧进行解包?
- javascript - 使用“import * as”和解构时的意外行为
- html - 如何在 Angular 8 中获取 Windows 用户名