JSONPaths文件:解析JSON数组中包含的JSON对象

时间:2018-05-01 11:30:07

标签: json amazon-redshift

我有以下JSON格式的行:

est.Y <- c(1:240)
for(i in 1:12){for(j in 0:19){est.Y[(12*j)+i] <- X[(12*j)+i] - lse.Mu.si[i]}}

我想将其上传到红移表中,如下所示:

 [
  {
    "id": 1,
    "costs": [
      {
        "blue": 100,
        "location":"courts",
        "sport": "football"
      }
    ]
  }
]

以下JSONPaths文件未成功:

  id  | blue  | location | sport
--------+------+---------+------
   1  | 100   | courts    |football

Redshift返回以下错误代码:

{
    "jsonpaths": [
        "$.id",
        "$.costs[0].blue",
        "$.costs[0].location",
        "$.costs[0].sport"
    ]
}

如何更改jsonpaths文件以便能够根据需要上传json?

1 个答案:

答案 0 :(得分:0)

John Rotenstein在评论中提供了答案。我只是在这里正式化答案。

documentation所示,输入的JSON记录必须是用换行符分隔的JSON对象序列。这些示例显示了JSON对象的漂亮打印效果,但通常记录的输入流每行将是一个JSON对象。

{ "id": 1, "costs": [ { "blue": 100, "location":"courts", "sport": "football" } ] }
{ "id": 2, "costs": [ { "blue": 200, "location":"fields", "sport": "cricket" } ] }

因此,从技术上讲,输入记录流不必是有效的JSON,而必须是定界的有效JSON对象的流。