Apache kafka WSO2 SP-带有JSON属性的Kafka源代码
我正在尝试使用以下代码从Kafka读取JSON数据:Apache kafka WSO2 SP-带有JSON属性的Kafka源代码,apache-kafka,wso2,kafka-consumer-api,kafka-producer-api,wso2sp,Apache Kafka,Wso2,Kafka Consumer Api,Kafka Producer Api,Wso2sp,我正在尝试使用以下代码从Kafka读取JSON数据: @source(type = 'kafka', bootstrap.servers = 'localhost:9092', topic.list = 'TestTopic', group.id = 'test', threading.option = 'single.thread', @map(type = 'json')) define stream myDataStream (json object); 但失败,错误如下: [201
@source(type = 'kafka', bootstrap.servers = 'localhost:9092', topic.list = 'TestTopic',
group.id = 'test', threading.option = 'single.thread', @map(type = 'json'))
define stream myDataStream (json object);
但失败,错误如下:
[2019-03-27_11-39-32_103]错误
{org.wso2.extension.siddhi.map.json.sourcemapper.JsonSourceMapper}-
流“myDataStream”没有名为“ABC”的属性,
但是接收到的事件{“event”:{“ABC”:“1”}没有。因此,删除该消息。
检查json字符串的默认映射格式是否正确
我已尝试添加属性
@source(type = 'kafka', bootstrap.servers = 'localhost:9092',
topic.list = 'TestTopic', group.id = 'test',
threading.option = 'single.thread',
@map(type = 'json', @attributes(ABC = '$.ABC')))
语法错误:
在流“myDataStream”中定义的“json”处出错,属性“json”为
未映射
非常感谢您的帮助。流的语法有错误
define stream myDataStream (ABC string);
在这里,属性名是JSON消息的关键,在本例中,ABC非常感谢。我将有100对来自卡夫卡的键/值对。所以我们必须将所有这些键映射到输入流吗?或者有没有一种方法可以将JSON作为一个对象来访问,并从中解析出所需的键?类似$.ABC或json.ABC的内容?是的,您可以使用自定义映射仅获取所需的键,@map(type='json',@attributes(key1='$.ABC.key'))定义流myDataStream(key1字符串);非常感谢,这在很大程度上帮助了我。我的JSON将是
{“event”:{“A”:“1”、“B”:“2”、“C”:“3”}
,并将属性添加为@attributes(JSON='$.event')
。但是分配给变量的字符串不是JSON格式,它转换为JSON key=value格式,例如{A=1,B=2,C=3}
。因此,我无法使用JSON:getString(JSON,$.A”)
进一步使用JSON。或者有没有办法将{A=1,B=2,C=3}
转换回wso2sp或siddhi中的{A:“1”,“B:”2”,“C:”3“}
,请纠正我的错误,而不是在源代码处映射属性,您希望在整个分析流程中保持JSON字符串的原样吗?下游操纵?