使用Coldfusion创建嵌套的JSON结构

时间:2013-06-14 07:21:26

标签: json coldfusion coldfusion-9 coldbox

我已经将CF结构等转换为JSON一段时间了,一切都很好。特别是Coldbox使这很容易。

但是,我目前正在使用jQuery Datatable,需要以下面的格式传递jSON。

我从一组对象开始。

我只希望每个对象中的某些属性进入最终的JSON字符串。

我在圈子里跑来跑去,可能完全过于复杂地将我的数据转换成这种格式的JSON。任何人都可以提供帮助,或建议一种简单的方法,我可以做到这一点..

另外值得一提的是我正在冷箱中构建它。 Coldfusion 9.

{ "aaData": [ [ "Test1", "test@test1", "444444444", "<i class=''icon-pencil icon-large'' data-id=''s1''></i>" ],[ "Test2", "test@test2", "555555555", "<i class=''icon-pencil icon-large'' data-id=''s2''></i>" ],[ "Test3", "test@test3", "666666666", "<i class=''icon-pencil icon-large'' data-id=''s3''></i>" ] ]}

非常感谢!

=============================================== =======

以下是我需要的游戏代码:

var dataStruct = structNew();
var dataArray = arrayNew(1);
var subsArray = arrayNew(1);
var subs = prc.org.getSubscribers();

for (i=1; i<=arrayLen(subs); i++){
    arrayAppend(subsArray,"#subs[i].getName()#");
    arrayAppend(subsArray,"#subs[i].getEmail()#");
    arrayAppend(subsArray,"#subs[i].getMobile()#");
    arrayAppend(subsArray,"<i class='icon-pencil icon-large' data-id='s#subs[i].getID()#'></i>");
    arrayAppend(dataArray,subsArray);
    arrayClear(subsArray);
};
structInsert(dataStruct,'aaData',dataArray);    
event.renderData('json',dataStruct);

1 个答案:

答案 0 :(得分:3)

好的,所以你有一个包含对象的数组,对象包含你需要在这个JSONed数组中结束的所有属性,是吗?

这样做:

create a new array
loop over the array of objects
    create a struct
    put all the values from each object you need to go into the JSON; be mindful to use associative array notation when setting the keys, to perserve the case of the keys
    append the struct to the new array
/loop
serializeJson the new array

我认为没有更简单的方法。