我是 R 新手,并且至少已经过了一天试图弄清楚这一点。
我一直在尝试从 data.table 创建 json,我想将其中一个变量的值用作键,并将其值作为组合其他变量的列表。我无法克服的障碍是使用变量的值作为键。
数据如下:
x<-data.table(ipUnit=c("192.168.2.254/1","192.168.2.5/1"), ip=c("192.168.2.254","192.168.2.5"), unit=c("1","1"))
ipUnit ip unit
1: 192.168.2.254/1 192.168.2.254 1
2: 192.168.2.5/1 192.168.2.5 1
JSON I'd like to eventually have:
IP_UNIT_ID" : [
"192.168.2.254/1" : {
"IP_ADDR" : "192.168.2.254",
"UNIT_ID" : "1 "
},
"192.168.2.5/1" : {
"IP_ADDR" : "192.168.2.5",
"UNIT_ID" : "1 "
}
]
我试过了:
e=parse(text="list(IP_UNIT_ID(list(ipUnit=list(\"IP_ADDR\"=ip,\"UNIT_ID\"=unit) )))")
toJSON(x[,eval(e)])
这使:
[{"IP_UNIT_ID":{"IP_ADDR":["192.168.2.254","192.168.2.5"],"UNIT_ID":["1","1"]}}]
这显然不太正确。
最后一次尝试是使用 hash 包,因为它极大地简化了我想要的结构的创建,但是,它似乎不是 rjson 或 jsonlite 中支持的对象。我收到错误,例如:
Erreur:没有 S4 类的方法:哈希