显示来自JSON coldfusion的数组结果

时间:2016-10-25 13:47:41

标签: arrays json coldfusion coldfusion-9 coldfusion-11

我在解析JSON值时遇到了困难。我正在使用deserializeJSON,它在数组中返回(如果有多个值)。

到目前为止,我已经:

<cfset test = deserializeJSON(json)>

<cfloop collection="#test.LoadResult#" item="val">
        <cfif isDefined("test.LoadResult.#val#")>
            <cfif isSimpleValue(evaluate("test.LoadResult.#val#"))>
                #val#  = #evaluate("test.LoadResult.#val#")# <br>
                <cfif !isSimpleValue("#test.LoadResult.BankAccounts#")>
                    #ArrayToList(test.LoadResult.ArrayWithMultipleData)# 
                </cfif>
            </cfif>
        </cfif>
    </cfloop>

但是当我尝试显示返回的数组时,它给出了错误“复杂对象类型无法转换为简单值。”。

问题是,如何在json中显示所有值,只要它是多个值(在数组中)或只是简单值?

1 个答案:

答案 0 :(得分:0)

只使用<cfdump var="#test#">之类的内容?我可能不理解你的问题。但是,我个人喜欢使用这种方法使用一些javascript编辑我的查询:

      <script type="text/javascript">
        mydata = eval(<cfoutput>#jsondata#</cfoutput>);
        var output = document.getElementById('someDiv');
        var colMap = new Object();
        //first - find my columnsco
        for(var i = 0; i < mydata.COLUMNS.length; i++) {
          colMap[mydata.COLUMNS[i]] = i;      
        } //start customizing the display based on your query/json data
        for(var i = 0; i < mydata.DATA.length; i++) {
           var str ="";`enter code here`
           str += mydata.DATA[i][colMap["COLUMN_NAME"]] + " "; 
        }
        output.innerHTML += str; //this can go in the for loop, depending on your requirements
       </script>