coldfusion输出到JSON

时间:2018-02-27 22:24:08

标签: json coldfusion coldfusion-11 lucee

我有cfoutput查询与group属性,一切都很好,但我想将其转换为嵌套的JSON输出,一种ul>李

但我仍然坚持尝试输出它,这是我到目前为止的尝试

#include <QCoreApplication>
#include <QtDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString s = "MDJ\nTest.\n";
    qDebug() << "MDJ\nTest.\n";
    qDebug() << s;

    /* Prints:
        MDJ
        Test.

        MDJ\nTest.\n
    */

    return a.exec();
}

这会产生不正确的结果,因为一个ID下面可以有10个程序,

2 个答案:

答案 0 :(得分:1)

听起来你正在尝试序列化它。

 <cfset JSONString = serializejson(dataArray)>

 <cfoutput>#JSONString#</cfoutput>

非主题

我会使用更新的语法。请注意,在循环时,您实际上并没有输出。 <cfloop>更合适。

 <cfset dataArray = [] />
 <cfloop query="a" group="ID">
     <cfloop>
         <cfscript> 
         dataStruct = {};
         dataStruct["Name"] = a.name;
         dataStruct["WebUrl"] = a.WebUrl;
         dataStruct["ID"] = a.ID;
         dataStruct["Name"] = a.Name;
         dataStruct["Program"] = a.Program;
         dataArray.append(dataStruct);
         <cfscript> 
     </cfloop>    
 </cfloop>



 <cfset JSONString = serializejson(dataArray)>

 <cfoutput>#JSONString#</cfoutput>

答案 1 :(得分:-3)

我要做的是让dataStruct.Program成为一个数组并在那里进行内循环。

<cfset dataArray = ArrayNew(1) />
<cfoutput query="a" group="ID">
    <cfset dataStruct = StructNew() >
    <cfset dataStruct["Name"] = a.name>
    <cfset dataStruct["WebUrl"] = a.WebUrl>
    <cfset dataStruct["ID"] = a.ID>
    <cfset dataStruct["Name"] = a.Name>
    <cfset dataStruct["Program"] = []>
    <cfoutput>
        <cfset ArrayAppend(dataStruct["Program"], a.Program)>
    </cfoutput>
    <cfset ArrayAppend(dataArray,dataStruct) />
<cfoutput>
<cfdump var="#dataArray#" abort>

然后你只需将它序列化为JSON。假设a.Program是字符串或数字;如果它比那更复杂,你可能需要另一个结构。