我有来自用户的以下字符串,需要将其转换为JSON。
2r,5g|3b,2r,4y|3g我想用JavaScript把它转换成JSON。下面是我想要的JSON的样子:
rounds = {
"round" : {
"interval" : {
"time" : "2",
"color" : "r"
},
"interval" : {
"time" : "5",
"color" : "g"
}
},
"round" : {
"interval" : {
"time" : "3",
"color" : "b"
},
"interval" : {
"time" : "2",
"color" : "r"
},
"interval" : {
"time" : "4",
"color" : "y"
}
},
"round" : {
"interval" : {
"time" : "3",
"color" : "g"
}
}
}我真的不确定从哪里开始,所以任何帮助都是感激的!
发布于 2011-08-26 15:17:00
我不知道这会对你有多大帮助,但它做的正是你需要的:
<script>
var string = "2r,5g|3b,2r,4y|3g";
var inSplit = string.split('|');
var myJson = "rounds = { ";
for (var one = 0; one < inSplit.length; one++){
var inOne = inSplit[one].split(',');
myJson = myJson + '\n "round" : {';
for (var rnd = 0; rnd < inOne.length; rnd++){
val = inOne[rnd].split('');
myJson = myJson + '\n "interval" : {';
myJson = myJson + '\n "time" : "'+val[0]+'",';
myJson = myJson + '\n "color" : "'+val[1]+'"';
myJson = myJson + '\n }';
if(inOne.length > (rnd+1)){
myJson = myJson + ',';
}
}
myJson = myJson + '\n }';
if(inSplit.length > (one+1)){
myJson = myJson + ',';
}
}
myJson = myJson + '\n}';
document.write(myJson);
</script>在jsfiddle上查看
https://stackoverflow.com/questions/7201019
复制相似问题