Я думаю, что когда вы просматриваете структуры, массивы или что-то еще, синтаксис сценария гораздо проще визуализировать.
ПРИМЕЧАНИЕ. Я не могу получить доступ к своим спискам, чтобы сохранить их для TryCF прямо сейчас.
Сначала я установил значение JSON:
<cfscript>
myresult.filecontent = '[
{
deviceIdentifier: "asdf" ,
deviceName : "localiPad1" ,
id : "23155736" ,
otherStuff : "adsfasdfasd" ,
questionResults : [
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "G8N9" ,
questionText : "Select User" ,
questionType : "Text" ,
resultValue : "Beatriz Pinho"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "2" ,
questionText : "Question2" ,
questionType : "Text" ,
resultValue : "Answer2"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "3" ,
questionText : "Question3" ,
questionType : "Text" ,
resultValue : "Answer3"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "4" ,
questionText : "Question4" ,
questionType : "Text" ,
resultValue : "Answer4"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "5" ,
questionText : "Question5" ,
questionType : "Text" ,
resultValue : "Answer5"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "6" ,
questionText : "Question6" ,
questionType : "Text" ,
resultValue : "Answer6"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "7" ,
questionText : "Question7" ,
questionType : "Text" ,
resultValue : "Answer7"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "8" ,
questionText : "Question8" ,
questionType : "Text" ,
resultValue : "Answer8"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "9" ,
questionText : "Question9" ,
questionType : "Text" ,
resultValue : "Answer9"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "10" ,
questionText : "Question10" ,
questionType : "Text" ,
resultValue : "Answer10"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "11" ,
questionText : "Question11" ,
questionType : "Text" ,
resultValue : "Answer11"
}
] ,
moreOtherStuff : "asdfasdfasdfasd"
} ,
{
deviceIdentifier: "fdsa" ,
deviceName : "localiPad2" ,
id : "2" ,
otherStuff : "adsfasdfasd" ,
questionResults : [
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "G8N9" ,
questionText : "Select User" ,
questionType : "Text" ,
resultValue : "Silent Bob"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "2" ,
questionText : "Question2" ,
questionType : "Text" ,
resultValue : "Answer2"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "3" ,
questionText : "Question3" ,
questionType : "Text" ,
resultValue : "Answer3"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "4" ,
questionText : "Question4" ,
questionType : "Text" ,
resultValue : "Answer4"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "5" ,
questionText : "Question5" ,
questionType : "Text" ,
resultValue : "Answer5"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "6" ,
questionText : "Question6" ,
questionType : "Text" ,
resultValue : "Answer6"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "7" ,
questionText : "Question7" ,
questionType : "Text" ,
resultValue : "Answer7"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "8" ,
questionText : "Question8" ,
questionType : "Text" ,
resultValue : "Answer8"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "9" ,
questionText : "Question9" ,
questionType : "Text" ,
resultValue : "Answer9"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "10" ,
questionText : "Question10" ,
questionType : "Text" ,
resultValue : "Answer10"
} ,
{
answerDate : "2018-04-26T09:25:55:55.0000000" ,
questionIdentifier : "11" ,
questionText : "Question11" ,
questionType : "Text" ,
resultValue : "Answer11"
}
] ,
moreOtherStuff : "asdfasdfasdfasd"
}
]' ;
Я создал переменную JSON, которая имитирует то, что вы получаете из вашего http-запроса. Затем я буду десериализовать JSON из этого.
recordData = deserializeJSON(myresult.filecontent) ;
Что дает мне хороший массив с структурами и другими массивами в нем.
Это та часть, которую я считаю намного проще в сценарии.
for ( var i IN recordData ) { // loop through the outer array
writeOutput("<strong>Record ID:</strong>" & i.id & "<br>") ;
for ( var j IN i.questionResults ) { // loop through each questionResults
writeOutput(
j.questionIdentifier & " - " &
j.questionText
& " >> " &
j.resultValue
& " ------- " &
j.answerDate
& "<br>"
) ;
}
}
И закрой мой скрипт.
</cfscript>
Если бы я мог правильно отобразить свой код TryCF.com, вы бы увидели следующее:
Record ID:23155736
G8N9 - Select User >> Beatriz Pinho ------- 2018-04-26T09:25:55:55.0000000
2 - Question2 >> Answer2 ------- 2018-04-26T09:25:55:55.0000000
3 - Question3 >> Answer3 ------- 2018-04-26T09:25:55:55.0000000
4 - Question4 >> Answer4 ------- 2018-04-26T09:25:55:55.0000000
5 - Question5 >> Answer5 ------- 2018-04-26T09:25:55:55.0000000
6 - Question6 >> Answer6 ------- 2018-04-26T09:25:55:55.0000000
7 - Question7 >> Answer7 ------- 2018-04-26T09:25:55:55.0000000
8 - Question8 >> Answer8 ------- 2018-04-26T09:25:55:55.0000000
9 - Question9 >> Answer9 ------- 2018-04-26T09:25:55:55.0000000
10 - Question10 >> Answer10 ------- 2018-04-26T09:25:55:55.0000000
11 - Question11 >> Answer11 ------- 2018-04-26T09:25:55:55.0000000
Record ID:2
G8N9 - Select User >> Silent Bob ------- 2018-04-26T09:25:55:55.0000000
2 - Question2 >> Answer2 ------- 2018-04-26T09:25:55:55.0000000
3 - Question3 >> Answer3 ------- 2018-04-26T09:25:55:55.0000000
4 - Question4 >> Answer4 ------- 2018-04-26T09:25:55:55.0000000
5 - Question5 >> Answer5 ------- 2018-04-26T09:25:55:55.0000000
6 - Question6 >> Answer6 ------- 2018-04-26T09:25:55:55.0000000
7 - Question7 >> Answer7 ------- 2018-04-26T09:25:55:55.0000000
8 - Question8 >> Answer8 ------- 2018-04-26T09:25:55:55.0000000
9 - Question9 >> Answer9 ------- 2018-04-26T09:25:55:55.0000000
10 - Question10 >> Answer10 ------- 2018-04-26T09:25:55:55.0000000
11 - Question11 >> Answer11 ------- 2018-04-26T09:25:55:55.0000000
ПРИМЕЧАНИЕ: Я запускаю это в Люси. ACF не нравится мой анализ JSON, и я не стал копать его, чтобы найти, какой символ ему не нравится. Это все еще работает, хотя. : -)