freemarker 对象转json 方便查看结构

     
 <#function objectToJsonFunction object>
 <#if object??>
     <#if object?is_enumerable>
         <#local json = '['>
         <#list object as item>
             <#if item?is_hash> 
                 <#if item_index &gt; 0 && json != "[" >
                     <#local json = json +',' >
                 </#if>
                 <#local json = json + objectToJsonFunction(item)>
             </#if>
         </#list>
         <#return json + ']'>
     <#elseif object?is_hash>
         <#local json = "{">
         <#assign keys = object?keys>
         <#list keys as key>
             <#if object[key]?? && !(object[key]?is_method) && key != "class">
                 <#if object[key]?is_number>
                     <#if key_index &gt; 0 && json != "{" >
                         <#local json = json +',' >
                     </#if>
                     <#local json = json + '"${key}": ${object[key]}'>
                 <#elseif object[key]?is_string>
                     <#if key_index &gt; 0 && json != "{" >
                         <#local json = json +',' >
                     </#if>
                   <#local json = json + '"${key}": "${object[key]?html!""?js_string}"'>
                 <#elseif object[key]?is_boolean >
                     <#if key_index &gt; 0 && json != "{" >
                         <#local json = json +',' >
                     </#if>
                     <#local json = json + '"${key}": ${object[key]?string("true", "false")}'>


                 <#elseif object[key]?is_enumerable >
                     <#if key_index &gt; 0 && json != "{" >
                         <#local json = json +',' >
                     </#if>
                     <#local json = json + '"${key}":'+ objectToJsonFunction(object[key])>


                 <#elseif object[key]?is_hash>
                     <#if key_index &gt; 0 && json != "{" >
                         <#local json = json +',' >
                     </#if>
                     <#local json = json + '"${key}":'+ objectToJsonFunction(object[key])>
                 </#if>
             </#if>
         </#list>
         <#return json +"}">
     </#if>
 <#else>
     <#return "{}">
 </#if>

</#function>