2012-05-18 54 views
-3

我想(在Javascript的ColdFusion的)转换:JSON转换的问题

{"val1":"member","val2":"book","val3":"journal","val4":"new_member","val5":"cds"}, 

进入这个:

{ member,book,journal,new_member,cds} 

请注意,我试图消除报价。

有没有可能做到这一点?我该怎么做?

感谢

汤姆

+1

“成员”,“书”等必须是字符串,除非您计划用这些名称声明变量。 – jbabey

+2

看起来像输入是一个JSON,但你的预期输出是什么? CF阵列?或JS阵列? – Henry

+0

“{member,book,journal,new_member,cds}”究竟是什么?一个东西?一个字符串? –

回答

2

好了,所以这样的: { “VAL1”: “成员”, “值2”: “书”, “VAL3”: “日志”, “VAL4”:” new_member“,”val5“:”cds“} 是JSON。

要转换为CF结构,你会是这样的:

myStruct = deserializeJSON('{"val1":"member","val2":"book","val3":"journal","val4":"new_member","val5":"cds"}'); 

(请注意我的例子假设我们是一个<CFSCRIPT>块内运行。) 现在你已经有了一个简单的结构与键/值对。但是你想要一个值的列表。所以让我们创建一个空字符串,然后将所有结构值附加到它:

myList = ""; 
for (k IN myStruct) { 
    myList = listAppend(myList,myStruct[k]); 
} 

Boom。 myList现在应该是“成员,书籍,日记,新成员,CD” 如果你真的想把它裹在花括号里。

myList = "{"&myList&"}"; 
+0

谢谢你Dave – anarchos78

+1

这里要记住的一件事是,当你循环访问结构体中的键时,不能保证键的顺序。所以如果列表中项目的顺序很重要,那么你需要稍微改变一下。 – baynezy

0

首先,我必须感谢您的回复。但你们中的一些人必须对新手更有礼貌。

var tata = {"val1":"member","val2":"book","val3":"journal","val4":"new_member","val5":"cds"} 
var arr=[] 

for (var i in tata) { 
    arr.push(tata[i]) 
}; 
console.log(arr); 


wrd = new Array(arr) 
var joinwrd = wrd.join(","); 
console.log('{' + joinwrd + '}');