如何从r中的哈希创建json

时间:2015-07-22 09:29:24

标签: r rjson jsonlite

我是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"]}}] 

显然不太正确。

最后的尝试是使用散列包,因为这极大地简化了创建我喜欢的结构,但是,它似乎不是rjson或jsonlite中的受支持对象。我收到的错误如下:

  

Erreur:没有S4类的方法:hash

1 个答案:

答案 0 :(得分:0)

恕我直言,有时手工操作更容易 - 这意味着在这种情况下:使用- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if (textField == self.pinTextField) { NSString *currentText = textField.text; NSString *newText = [currentText stringByReplacingCharactersInRange:range withString:string]; textField.text = newText; return NO; } return YES; } 构建json:

sprintf