我想从 sql server 中选择 2 个相关表( invoice , invoice_detail ) - 并在每条记录中嵌套 invoice_detail 数据 - 使用 R 以 json 格式(如本页底部的格式)输出(我不能使用 SQL Server因为它是一个旧版本——我还需要用 R 做一些其他的事情)。
看来我需要使用包 RODBC 和 rjson 或类似的。
library(rjson)
library(RODBC, quietly = TRUE)
sql.conn.string <- "Driver={SQL Server};Server=server;Uid=username;Pwd=password;"
sqlOdbc = odbcDriverConnect(sql.conn.string)
orders <- sqlFetch(sqlOdbc, "orders", max = 20)
toJSON(orders)
odbcClose(sqlOdbc)
给出错误:toJSON(orders) 中的错误:无法将 R 类型 24 转换为 JSON。我有点迷路了。是否有另一种包/方法 - 或一些临时转换来实现这一点?
所需格式:
{
"invoiceID": "970e858b-416f-4ed3-b244-3e32b6baa3a1",
"invoiceNumber": "100129115",
"date": "2017-06-12T12:00:00Z",
"lineItems": [{
"description": "Product 1",
"quantity": 1.0000,
"unitAmount": 0.0000,
"itemCode": "lmAM001ESC",
"taxAmount": 0.00,
"lineAmount": 0.00,
"discountRate": 0.00,
"tracking": [],
"lineItemID": "e044a3a9-31d6-4619-a1c4-d50c2565abda"
},
{
"description": "Product 2",
"quantity": 1.0000,
"unitAmount": 0.0000,
"itemCode": "lmAD050HDC",
"taxAmount": 0.00,
"lineAmount": 0.00,
"discountRate": 0.00,
"tracking": [],
"lineItemID": "835be120-1362-4b8a-b9b2-2b3cd2c69d9c"
}]
}