【发布时间】:2017-10-25 06:36:55
【问题描述】:
我一直在尝试从 kafka 流式传输我的 json 事件,将其展平,然后使用 Spring Cloud Stream 将其推送回另一个主题。
输入:
{
"major": "Computer Science",
"books": [{
"title": "Learn C",
"author": "Prof C"
},
{
"title": "Learn Java",
"author": "Java Expert"
},{
"title": "Learn Python",
"author": "Python Master"
},]
}
扁平化流程:
@ServiceActivator(inputChannel = Sink.INPUT, outputChannel = Source.OUTPUT)
public String(String event){
JSONArray result = new JSONArray();
JSONObject rawEvent = new JSONObject(event);
String major = rawEvent.get("major");
JSONArray books = rawEvent.get("books");
for (int i = 0; i < books.length; i++){
JSONObject book = books.get(i);
book.put("major", major);
result.put(book)
}
return result.toString();
}
只生产:
[{"major":"Computer Science", "books.title":"Learn C", "books.author":"Prof C"},
{"major":"Computer Science", "books.title":"Learn Java", "books.author":"Java Expert"},
{"major":"Computer Science", "books.title":"Learn Python", "books.author":"Python Master"}]
我的问题是如何让它变成这样
{"major":"Computer Science", "books.title":"Learn C", "books.author":"Prof C"}
{"major":"Computer Science", "books.title":"Learn Java", "books.author":"Java Expert"}
{"major":"Computer Science", "books.title":"Learn Python", "books.author":"Python Master"}
所以我可以像我所做的那样将 mutilple JSONObject 推回而不是单个 JSONArray?
Afaik,Spring Cloud Stream 输出只是一个事件,不适合我上面的情况以向 Kafka 产生 3 个事件。
谢谢。
【问题讨论】:
-
欢迎来到 StackOverflow。请通过tour 环顾四周,通读HELP center,然后阅读How to 、What types of questions should I avoid asking? 并提供MCVE : Minimal, Complete, and Verifiable Example。如果周围的人可以轻松阅读并理解您的意思或问题所在,他们将更愿意提供帮助:)
-
@Dwhitz 感谢您的意见。届时将更新我的问题。 :)
标签: java spring spring-cloud-stream