Ah I see.
So that’s an atypical use case and is kind of contrary to the Snowplow approach as we’re all about data quality and control at collection - ideally you’ll know what you’re getting and define it up front.
However, if you need to do it there’s two things you can try.
Firstly, if you can cast it, cast to string and send it as into a string field. You can then use Snowflake SQL to interpret the string as a JSON.
Secondly, you’d need to test this for the Snowflake loader, but the GCP loader will interpret a field defined as [“object”, “string”] as a JSON string. So if you send it a JSON object it’ll land in DB as a stringified JSON.
There are some similarities in the two loaders under the hood but I haven’t tested this for Snowflake so it might not work. If you can’t cast the value this is an option - but if it does work I can’t say that will never change in the future.
Hope that helps.