是有辦法反序列化字符串對象中的ActionScript:的Actionscript反序列化字符串爲對象
即
var str:String = "{ id: 1, value: ['a', 500] }";
應被製成適當的ActionScript對象。
這不是json,因爲這些鍵沒有用引號括起來。
是有辦法反序列化字符串對象中的ActionScript:的Actionscript反序列化字符串爲對象
即
var str:String = "{ id: 1, value: ['a', 500] }";
應被製成適當的ActionScript對象。
這不是json,因爲這些鍵沒有用引號括起來。
好吧,對於那種類型的數據模式,我沒有一個好方法來做到這一點。要關閉假設你可以在不影響數據,使其更JSON樣...這裏是我的頭頂部什麼,我會嘗試概念:
var str:String = "{ id:1, value:['a', 500] }";
// strip off the { and } characters since we've nothing nice to do that for us...
var mynewString:String = str.slice(1, str.length - 1);
var stringItems:Array = mynewString.split(",");
var obj:Object = new Object();
for (var i in stringItems)
{
var objProps:Array = stringItems[i].split(":");
// kill off the quotes here
obj[props[0]] = objProps[1].slice(1, objProps[1].length - 1);
if (obj[props[0]].indexOf('[') == 0) {
// remove [ and ] if there
var maybeStrArray:String = obj[props[0]].slice(1, str.length - 1);
// right now assume we're an array based on our inbound data
var strArr:Array = maybeStrArray.split(",");
obj[props[0]] = strArr;
}
}
類似的東西或類似的也無妨。是的,這很粗糙,並且絕對可以用更靈活的方式進行設計(比如將字符串移動到數組轉換爲其自己的函數,以便我可以在其他地方使用它)。這只是概念上首先想到的答案。
嘗試一下,調整它,看看它是否有幫助。
虐待接受這個答案爲你所做的努力。然而,我與解決方案正確格式化爲json然後使用as3corelib。 – clamp 2012-02-10 08:55:48
您可以使用as3corelib library進行JSON反序列化。花時間寫自己的實現是不值得的(除非你希望如此)。
有沒有一個rason的字符串不能先轉換成json?這似乎是一個好主意。 – 2012-02-08 23:22:49
以及實際上轉換應該是可能的。對不起,我沒有考慮過這個 – clamp 2012-02-09 09:19:25