如何将带等号“=”的字符串转换为 JavaScript 中的 json
How to convert a string with equal "=" sign to json in JavaScript
以下字符串从 Kafka 返回到 Lambda 连接器。
'{device_id=D_2021_A07, key=tele_metrics, sensor_1=62, sensor_2=23}'
我想将其转换为有效的 JSON 像这样
{
"device_id": "D_2021_A07", //String
"key": "tele_metrics", //String
"sensor_1": 62, //Integer
"sensor_2": 23 //Integer
}
如何在 Javascript 中做到这一点。
您可以去除第一个和最后一个字符,在逗号处拆分,在每个 =
处拆分,如果可能,将值转换为数字,然后将这些对组合成一个对象:
const dataA = '{device_id=D_2021_A07, key=tele_metrics, sensor_1=62, sensor_2=23}';
const dataB = Object.fromEntries(
dataA
.substring(1, dataA.length - 1)
.split(', ')
.map(pair => pair.split('='))
.map(([key, value]) => [key, isNaN(value) ? value : +value])
);
console.log(dataB);
console.log(JSON.stringify(dataB));
以下字符串从 Kafka 返回到 Lambda 连接器。
'{device_id=D_2021_A07, key=tele_metrics, sensor_1=62, sensor_2=23}'
我想将其转换为有效的 JSON 像这样
{
"device_id": "D_2021_A07", //String
"key": "tele_metrics", //String
"sensor_1": 62, //Integer
"sensor_2": 23 //Integer
}
如何在 Javascript 中做到这一点。
您可以去除第一个和最后一个字符,在逗号处拆分,在每个 =
处拆分,如果可能,将值转换为数字,然后将这些对组合成一个对象:
const dataA = '{device_id=D_2021_A07, key=tele_metrics, sensor_1=62, sensor_2=23}';
const dataB = Object.fromEntries(
dataA
.substring(1, dataA.length - 1)
.split(', ')
.map(pair => pair.split('='))
.map(([key, value]) => [key, isNaN(value) ? value : +value])
);
console.log(dataB);
console.log(JSON.stringify(dataB));