在R中解析多行JSON

在R中解析多行JSON,json,r,jsonlite,Json,R,Jsonlite,我有一个来自服务器的JSON输入,我想把它解析成一个数据帧对象 结构: 紧凑型 '{"total_rows":2,"offset":0,"rows":[{"id":"1","key":["1001"],"value":{"context":"1001","application_id":"1","cust_assets_total":1550000}},{"id":"2","key":["1001"],"value":{"context":"1001","application_id":"2",

我有一个来自服务器的JSON输入,我想把它解析成一个数据帧对象

结构:

紧凑型

'{"total_rows":2,"offset":0,"rows":[{"id":"1","key":["1001"],"value":{"context":"1001","application_id":"1","cust_assets_total":1550000}},{"id":"2","key":["1001"],"value":{"context":"1001","application_id":"2","cust_assets_total":1550000}}]}'
漂亮的形式

{
  "total_rows": 2,
  "offset": 0,
  "rows": [
    {
      "id": "1",
      "key": [
        "1001"
      ],
      "value": {
        "context": "1001",
        "application_id": "1",
        "cust_assets_total": 1550000
      }
    },
    {
      "id": "2",
      "key": [
        "1001"
      ],
      "value": {
        "context": "1001",
        "application_id": "2",
        "cust_assets_total": 1550000
      }
    }
  ]
}
预期输出:

context application_id cust_assets_total
1001    1              1550000
1001    2              1550000
library(jsonlite)

raw_data <- '{"total_rows":2,"offset":0,"rows":[{"id":"1","key":["1001"],"value":{"context":"1001","application_id":"1","cust_assets_total":1550000}},{"id":"2","key":["1001"],"value":{"context":"1001","application_id":"2","cust_assets_total":1550000}}]}'

temp <-fromJSON(paste(readLines(raw_data),collapse=""))
使用的代码:

context application_id cust_assets_total
1001    1              1550000
1001    2              1550000
library(jsonlite)

raw_data <- '{"total_rows":2,"offset":0,"rows":[{"id":"1","key":["1001"],"value":{"context":"1001","application_id":"1","cust_assets_total":1550000}},{"id":"2","key":["1001"],"value":{"context":"1001","application_id":"2","cust_assets_total":1550000}}]}'

temp <-fromJSON(paste(readLines(raw_data),collapse=""))

如果围绕“原始数据”包装
textConnection
,则可以读取行,但省略它更容易:

> temp <-fromJSON(raw_data)
> temp
$total_rows
[1] 2

$offset
[1] 0

$rows
  id  key value.context value.application_id value.cust_assets_total
1  1 1001          1001                    1                 1550000
2  2 1001          1001                    2                 1550000
>温度
$total_行
[1] 2
$offset
[1] 0
$rows
id key value.context value.application\u id value.cust\u assets\u总计
1  1 1001          1001                    1                 1550000
2  2 1001          1001                    2                 1550000

注:。。。此版本的
fromJSON
提供了一个三元素命名列表。

如果
raw\u data
已经在R中,为什么不直接使用
fromJSON(raw\u data)
?至于错误,我相信您可能缺少
textConnection
,因为在
readLines(textConnection(raw_data))
raw_数据将是使用Rcurl从web下载的数据,也就是说,raw_data现在问这个问题感觉很愚蠢,谢谢您的解决方案