我是Flume的新手,并致力于使用 HTTP源发送 flume 事件。如果有效载荷格式化为以下,我能够成功发送事件:
[{
"headers" : {
"timestamp" : "434324343",
"host" : "random_host.example.com"
},
"body" : "random_body"
}]
但是,与标题类似,我需要将主体作为JSONObject发送,而不是字符串。例如:
[{
"headers" : {
"timestamp" : "434324343",
"host" : "random_host.example.com"
},
"body" : {
"value1" : "100",
"value2" : "101"
}
}]
我怎么能做到这一点?
提前致谢。
答案 0 :(得分:0)
根据我的知识,我们不需要太在意JSONObject是否被发送,我们发送了一个Json String(可以解析为JSONObject)。您可以使用许多工具(如GSon / FastJson)将字符串转换为Array / Map或JSONObject。
以下是一个例子:
Gson gson = new Gson();
String body =" {\" timestamp \":\" 434324343 \",\" host \":\" random_host .example.com的\"}&#34 ;;
Map map = gson.fromJson(body,new TypeToken>(){}。getType());