2016-10-25 3 views
0

Мне тяжело разбираться в значениях JSON. Я использую deserializeJSON, и он возвращает (если несколько значений) в массиве.Отображение результата массива из JSON coldfusion

До сих пор я получил:

<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

Вы можете разместить свой json-файл? –

+1

Как сказал @MattBusche - вы не можете сказать проблему из приведенного выше кода. Сделайте '', а затем опубликуйте эти результаты - тогда мы увидим, как CF десериализуется. Необработанный JSON также может быть полезен. –

+0

http://imgur.com/r8f9PYf -> Это json-структура – T2Admin

ответ

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>