ActionScript десериализует строки в объекты - PullRequest
0 голосов
/ 08 февраля 2012

есть ли способ десериализации строк для объектов в actionscript:

т.е.

  var str:String = "{ id: 1, value: ['a', 500] }";

должен быть превращен в соответствующий объект actioncript.

это не json, поскольку ключи не заключены в кавычки.

Ответы [ 2 ]

2 голосов
/ 08 февраля 2012

Хорошо, для такого типа шаблона данных я не знаю, как это сделать.Исходя из предположения, что вы не можете повлиять на данные, чтобы сделать их более похожими на 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;
    }
}   

Что-то подобное или подобноетем не мение.Да, это грубо, и абсолютно это можно сделать более гибким способом (например, переместить строку в преобразование массива в его собственную функцию, чтобы я мог использовать ее в другом месте).Это просто первое, что концептуально пришло в голову как ответ.

Попробуйте, настройте его и посмотрите, поможет ли это.

1 голос
/ 08 февраля 2012

Вы можете использовать библиотеку as3corelib для десериализации JSON.На самом деле не стоит тратить свое время на написание собственной реализации (кроме случаев, когда вы этого хотите).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...