You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@flink.apache.org by Timo Walther <tw...@apache.org> on 2021/02/01 14:13:04 UTC

Re: Is Flink able to parse strings into dynamic JSON?

Hi Devin,

Flink supports arbitrary data types. You can simply read the JSON object 
as a big string first and process the individual event types in a UDF 
using e.g. the Jackson library.

Are you using SQL or DataStream API?

An alternative is to set the "fail-on-missing-field" flag to false. This 
allows you to read a field if it is present otherwise it will be null. 
You can then simply list all fields you are interested in from all 
different event types.

I hope this helps.

Regards,
Timo



On 28.01.21 05:44, Devin Bost wrote:
> I'm wanting to know if it's possible in Flink to parse strings into a 
> dynamic JSON object that doesn't require me to know the primitive type 
> details at compile time.
> We have over 300 event types to process, and I need a way to load the 
> types at runtime. I only need to know if certain fields exist on the 
> incoming objects, and the object schemas are all different except for 
> certain fields.
> Every example I can find shows Flink users specifying the full type 
> information at compile time, but there's no way this will scale.
> 
> It's possible for us to lookup primitive type details at runtime from 
> JSON, but I'll still need a way to process that JSON in Flink to extract 
> the metadata if it's required. So, that brings me back to the original 
> issue.
> 
> How can I do this in Flink?
> 
> --
> Devin G. Bost