将Flume JSONHandler体发送为JSONObject

时间:2015-11-13 21:43:01

标签: json http flume jsonobject flume-ng

我是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"
         }
}]

我怎么能做到这一点?

提前致谢。

1 个答案:

答案 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());