Created 04-02-2024 01:25 AM
Hello,
I have a JSON data in the ClickHouse database with a type of string. The JSON data looks like this:
[{ "Name": "Gta V" "Type": "Xyz" "content": "{"Game":{"Subject":[{"Time":{"@value":"201511021057"}}]}}" }]
The output I get using Nifida ExecuteSqlRecord is like this. I can remove the \ character using the ReplaceText process. The output looks like this:
[{ "Name": "Gta V" "Type": "Xyz" "content": "{"Game":{"Subject":[{"Time":{"@value":"201511021057"}}]}}" }]
However, the value part for the content key is still a string. How can I make its type as JSON?
The desired output is like this:
[{ "Name": "Gta V" "Type": "Xyz" "content": {"Game":{"Subject":[{"Time":{"@value":"201511021057"}}]}} }]
Created 04-02-2024 07:48 AM
HI @mstfo,
Take the output to UpdateRecord processor, and cast the desire field to any specific data type example
formula: ${field.value:ToInteger()}
Created 04-02-2024 11:50 PM
I am currently using the 'executesqlrecord -> replacetext' (for unescapeJson) process. How should I use the 'updateRecord' processor here? Could you explain a bit more ?
Created 04-03-2024 12:56 AM
Are you fetching and processing the records as it is ? or defining the json path (flatting the JSON) ?
[{ "Name": "Gta V" "Type": "Xyz" "content": "{"Game":{"Subject":[{"Time":{"@value":"201511021057"}}]}}" }]
Created 04-03-2024 01:45 AM
The content field in the source table is in string format. When I receive the data from the source, it comes like this:
[{ "Name": "Gta V" "Type": "Xyz" "content": "{"Game":{"Subject":[{"Time":{"@value":"201511021057" }}]}}" }]
[{ "Name": "Gta V" "Type": "Xyz" "content": {"Game":{"Subject":[{"Time":{"@value":"201511021057"}}]}} }]
Created 04-03-2024 12:46 PM
Can you send the JOLT just to understand what you are exactly extracting?
for example if you are extracting @value then something like "@value": "=toInteger" in JOLT can be written for typeconversion.
I belive type conversion can not be done in list.
Created 04-04-2024 04:31 AM
"This is the output I obtained with executesqlrecord: [{ "Name": "Gta V" "Type": "Xyz" "content": "{"Game":{"Subject":[{"Time":{"@value":"201511021057" }}]}}" }] After executesqlrecord, I use ${'$1':unescapeJson()} in the replacetext processor to remove the backslash characters. Then my output looks like this: [{ "Name": "Gta V" "Type": "Xyz" "content": "{"Game":{"Subject":[{"Time":{"@value":"201511021057" }}]}}" }]
What I want is, after removing the backslashes, the nested JSON data in the content field should not come within double quotes. I want to learn the ways to remove it after ReplaceText. So, ultimately, the desired output is:
[{ "Name": "Gta V" "Type": "Xyz" "content": {"Game":{"Subject":[{"Time":{"@value":"201511021057"}}]}} }]