ambiguous reference to overloaded definition, both method toJSONString in class JSON of type (x$1: Any, x$2: com.alibaba.fastjson.serializer.SerializerFeature*)

问题:在scala中将对象转为json字符串时,经常会出现这样的问题

  unionDS.print()
    unionDS.map(x=> JSON.toJSONString(x))
        .addSink(MyKafkaUtil.getKafkaProducer(sinkTopic))

错误信息:

Error:(100, 26) ambiguous reference to overloaded definition,
both method toJSONString in class JSON of type (x$1: Any, x$2: com.alibaba.fastjson.serializer.SerializerFeature*)String
and  method toJSONString in class JSON of type (x$1: Any)String
match argument types (com.alibaba.fastjson.JSONObject)
    unionDS.map(x=> JSON.toJSONString(x))

 

原因:

重载的方法有多个,不知道选择哪一个。

 

解决方法:

方法一:

 unionDS.print()
    unionDS.map(x=> JSON.toJSON(x).toString)

 

方法二:

    unionDS.print()
    unionDS.map(x=> JSON.toJSONString(x,SerializerFeature.PrettyFormat))

 

posted @ 2022-02-12 15:50  硅谷工具人  阅读(324)  评论(0编辑  收藏  举报
成功之道,在于每个人生阶段都要有不同的目标,并且通过努力实现自己的目标,毕竟人生不过百年! 所有奋斗的意义在于为个人目标实现和提升家庭幸福,同时能推进社会进步和国家目标! 正如古人讲的正心诚意格物致知,修身齐家治国平天下。