这个JSON对象包含每个时间戳的水分级别,如下所示:
{
"values": {
"21-Aug-2020 20:28:06:611591": "58.59",
"21-Aug-2020 20:28:09:615714": "71.42",
"21-Aug-2020 20:28:12:630856": "95.11",
"21-Aug-2020 20:28:15:640193": "83.69",
"22-Aug-2020 14:56:31:099964": "54.46",
"22-Aug-2020 14:56:34:107806": "50.35",
"22-Aug-2020 14:56:37:109768": "53.78",
"22-Aug-2020 14:56:40:110309": "72.62"
}
}
我使用以下函数从Firebase接收这个JSON:
function extract(){
var rp = require('request-promise')
const options = {
uri: "https://ds2-mdkx.firebaseio.com/Moisture.json",
json: true
}
return rp(options)
.then(res => {
return { values: res }
} )
}
我已经将这个函数的输出存储到一个基本包含对象的变量中:
var ext = extract();
现在的问题是,我想要得到第一个元素。如果键名是“val1”,我可以通过键入ext.val1来访问该元素
"val1": "58.59",
所以问题是:我如何以迭代的方式改变我的对象(字典)的每个关键元素,以便能够轻松地访问它们?
这是我的目标对象修改:
{
"values": {
"val1": "58.59",
"val2": "71.42",
"val3": "95.11",
"val4": "83.69",
"val5": "54.46",
"val6": "50.35",
"val7": "53.78",
"val8": "72.62"
}
}
您可以通过获取值来获取一个新对象。
null
const data = {
"values": {
"21-Aug-2020 20:28:06:611591": "58.59",
"21-Aug-2020 20:28:09:615714": "71.42",
"21-Aug-2020 20:28:12:630856": "95.11",
"21-Aug-2020 20:28:15:640193": "83.69",
"22-Aug-2020 14:56:31:099964": "54.46",
"22-Aug-2020 14:56:34:107806": "50.35",
"22-Aug-2020 14:56:37:109768": "53.78",
"22-Aug-2020 14:56:40:110309": "72.62"
}
}
data.values = Object.fromEntries(Object.values(data.values).map((v, i) => ['val' + (i + 1), v]));
console.log(data);