我有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个程序,
答案 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
是字符串或数字;如果它比那更复杂,你可能需要另一个结构。