jackson - Evaluate JSon with null value using Freemarker -
when dealing json values null freemarker give error in ?eval.
with mapper.setserializationinclusion(inclusion.non_null) can avoid miss information on generated json.
there's way achieve evaluation null values?
<#assign test = "{\"foo\":\"bar\"}"> <#assign m = test?eval> ${m.foo} <#-- prints: bar --> fail in eval
<#assign test = "{\"foo\":null}"> <#assign m = test?eval> <#-- fail in eval --> ${m.foo}
unfortunately (or... infuriatingly), ftl doesn't know concept of null (although might change 2.4). if manage create map json foo key exists associated value null (like create such map in java), ${m.foo} still fail. surely can write ${m.foo!'null'}, print null if there's no foo key @ all. maybe it's better if provide default value null-s during json evaluation:
<#function parsejson json> <#local null = 'null'> <#-- null not keyword in ftl --> <#return json?eval> </#function> ${parsejson("{\"foo\":null}").foo} <#-- prints null --> now, however, can't tell difference between "null" , null. if that's problem, chose odd default, '@@@null' or use macro indicator value , use ?is_macro test if value null (that hack useful json evaluation can't produce macros)...
Comments
Post a Comment