【问题标题】:send Flume JSONHandler body as JSONObject将 Flume JSONHandler 主体作为 JSONObject 发送
【发布时间】:2015-11-13 21:43:00
【问题描述】:

我是 Flume 的新手,正在使用 HTTP Source 发送 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"
         }
}]

我怎样才能做到这一点?

提前致谢。

【问题讨论】:

标签: json http flume jsonobject flume-ng


【解决方案1】:

据我所知,我们不需要太关心 JSONObject 是否被发送,我们发送一个 Json 字符串(可以解析为 JSONObject)。您可以使用 GSon/FastJson 等许多工具将字符串转换为 Array/Map 或 JSONObject。

下面是一个例子:

Gson gson = new Gson();
String body = "{\"timestamp\":\"434324343\",\"host\":\"random_host.example.com\"}";

Map map = gson.fromJson(body, new TypeToken>() {}.getType());

【讨论】:

    猜你喜欢
    • 2017-03-02
    • 1970-01-01
    • 2019-11-02
    • 2014-10-01
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    相关资源
    最近更新 更多