我在解析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中显示所有值,只要它是多个值(在数组中)或只是简单值?
答案 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>