我正在从 kafka 主题中获取 json 数据。我如何应用 json 解析来获取使用反序列化方法的风暴方案类中所有对象的所有字段,之后我将值返回到新的返回值()。(backtype.storm.tuple.Values 类方法) ?即,如果我的主题中有 2 个 json 对象,我循环它们以获取所有字段,最后我必须将所有值返回到 return 方法。我的返回应该包含两个 json 对象的所有字段。
我的问题:return 方法中只返回了 2 个 obj json 数据。我认为第二个对象的所有字段都覆盖了第一个对象字段。最后返回第二个对象字段。
你们中的任何人都可以给我一个返回所有对象字段(1,2 个对象字段)的想法......
提前致谢
public class MainParserSpout implements Scheme{
String tweet_created_at;
String tweet_id;
String tweet_id_str;
String tweet_text;
String tweet_source;`
@Override
try{
public List<Object> deserialize(byte[] bytes){
String twitterEvent = new String(bytes, "UTF-8");
JSONArray JSON = new JSONArray(twitterEvent);
for(int i=0;i<JSON.length();i++) {
JSONObject object_tweet=JSON.getJSONObject(i);
//Tweet status
try{
this.tweet_created_at=object_tweet.getString("created_at");
this.tweet_id=object_tweet.getString("id");
this.tweet_id_str=object_tweet.getString("id_str");
this.tweet_text=object_tweet.getString("text");
this.tweet_source=object_tweet.getString("source");
}catch(Exception e){}
} //array for close
}catch(Exception e){}
} //JSON array close
return new Values(tweet_created_at,tweet_id,tweet_id_str,tweet_text,tweet_source);
} //deserialize method close
public Fields getOutputFields() {
return newFields("tweet_created_at","tweet_id","tweet_id_str","tweet_text","tweet_source");
} //getOutputFields method close
} //class close