我在JSON文件中收到意外错误

时间:2019-10-04 06:14:47

标签: json scala apache-kafka sbt apache-flink

在flink中使用来自Kafka的JSON文件时,出现此错误:

  

由以下原因引起:org.apache.flink.shaded.jackson2.com.fasterxml.jackson.core.io.JsonEOFException:意外的输入结束:预期的对象关闭标记(起始标记位于[来源:(byte [ ])“ [{”;行:1,列:2])            在[来源:(byte [])“ [[”;行:1,列:5]

这是我的JSON文件:

[{
        "locationID": "ASK",
        "temp": 35
    },
    {
        "locationID": "BC",
        "temp": 45
    },
    {
        "locationID":"CHD",
        "temp": 55
    },
    {
        "locationID": "RAJ",
        "temp": 65
    },
    {
        "locationID": "EGY",
        "temp": 55
}]

这是代码:

Why I'm not able to make a keyed stream out of this

1 个答案:

答案 0 :(得分:0)

据我所知,您始终需要输入单行json字符串。因此,在您的示例中使用以下代码:

[{"locationID": "ASK", "temp": 35}, {"locationID": "BC", "temp": 45}, {"locationID": "CHD", "temp": 55}, {"locationID": "RAJ", "temp": 65}, {"locationID": "EGY", "temp": 55}]

对于更通用的方法,您可以使用类似以下内容的格式来重新格式化多行json字符串:

.selectExpr("REPLACE(CAST(value as string), '\n', '') as json")