带evaluate()的String到Array失败

时间:2012-11-27 20:46:18

标签: coldfusion coldfusion-9

如何将字符串转换为数组

<cfscript>
    stResult = {    strData = "[1,2,3,4,5,6]"
                 ,  arInstant = [1,2,3,4,5,6]
               };

    //stResult.arData = evaluate(stResult.strData);  // this does not work
    //stResult.arData = evaluate("#stResult.strData#"); // nor does this

    writedump(stResult);
</cfscript>

我试图获得看起来像arInstant的东西。

有没有比标记[]更好的方法,转换为列表,然后转换为数组?

3 个答案:

答案 0 :(得分:4)

您的数据是JSON字符串,因此请使用 deserializeJson()将其转换为数组。

用法:

Result.Data = deserializeJson(Result.Input);

答案 1 :(得分:2)

通常应避免使用

evaluate()(参考:123)。怎么样尝试:

stResult.arData = ListToArray(stResult.strData, "[],");

这会将整个字符串视为一个列表,可能的分隔符为[]以及,

它应该为您提供一个包含6个元素的数组。

当然,您stResult.arInstant似乎已经拥有了您需要的东西......您还想做什么?

答案 2 :(得分:0)

对于这个具体问题,“

有没有一种比剥离[],转换为列表,然后转换为数组更好的方法?“

实际上,一旦你去除方括号,它就是一个列表,这样就少了一步。