Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Разыскивается JSON to XML конвертер (http://www.flasher.ru/forum/showthread.php?t=179818)

Bacrilio 22.05.2012 12:47

Разыскивается JSON to XML конвертер
 
Здравия !

Разыскивается JSON to XML конвертер на as3.
XML to JSON есть, хочется обратную операцию.

Кто нибудь встречал ?
Спасибо !

ERrorMAKros 24.05.2012 15:52

А можно выложить XML to JSON?

RJ Presto 24.05.2012 17:46

Цитата:

Сообщение от ERrorMAKros (Сообщение 1081143)
А можно выложить XML to JSON?

первый же результат в гугле
http://krasimirtsonev.com/blog/artic...-json-xml2json

MikroAcse 24.05.2012 18:05

https://www.google.ru/#sclient=psy-a...w=1680&bih=912
Первый, второй и седьмой результат.
Возьми оттуда алгоритм.

RJ Presto 24.05.2012 18:28

в связи с тем, что JSON.decode есть в as3lib, а в 11м плеере так и вообще нативно - задачу можно свести к сериализации Object в XML

Код AS3:

function isSimpleType(obj:Object):Boolean
{
        return (obj is String) ||
                (obj is int) ||
                (obj is uint) ||
                (obj is Number) ||
                (obj is Boolean);
}
 
function objectToXML(sourceObject:Object, rootNode:String = "root"):XML
{
        var result:XML = <{rootNode}></{rootNode}>
 
        for (var field:String in sourceObject)
        {
                var value:* = sourceObject[field];
                var node:XML;
                if (isSimpleType(value))
                {
                        node = <{field}>{value}</{field}>;
                        result.appendChild(node);
                }
                else
                {
                        node = objectToXML(value, field);
                        result.appendChild(node);
                }
        }
 
        return result;
}


wvxvw 24.05.2012 20:39

И теперь создаем объект:
Код AS3:

var o:Object = { };
o.o = o;

и привет objectToXML() ;)

Да, кроме этого - а что с массивами? <0>foo</0><1>bar</1> - это вообще не валидный ХМЛ.

RJ Presto 24.05.2012 20:46

Цитата:

Сообщение от wvxvw (Сообщение 1081204)
И теперь создаем объект:
Код AS3:

var o:Object = { };
o.o = o;

и привет objectToXML() ;)

быстренько набросал, сделать такой тест не догадался :)
но по большому счёту, это не очень-то реалистичная ситуация

да и предполагается, что на вход придёт объект из JSON.decode - там такая ситуация невозможна

Код AS3:

function isSimpleType(obj:Object):Boolean
{
        return (obj is String) ||
                (obj is int) ||
                (obj is uint) ||
                (obj is Number) ||
                (obj is Boolean);
}
 
function objectToXML(sourceObject:Object, rootNode:String = "root"):XML
{
        var result:XML = <{rootNode}></{rootNode}>
 
        for (var field:String in sourceObject)
        {
                var value:* = sourceObject[field];
 
                if (sourceObject is Array)
                {
                        field = rootNode;
                }
 
                var node:XML;
                if (isSimpleType(value))
                {
                        node = <{field}>{value}</{field}>;
                        result.appendChild(node);
                }
                else
                {
                        node = objectToXML(value, field);
 
                        if (value is Array)
                        {
                                for each (var child:XML in node.children())
                                {
                                        result.appendChild(child);
                                }
                        }
                        else
                        {
                                result.appendChild(node);
                        }
                }
        }
 
        return result;
}

такой код будет генерить валидный XML, но есть проблема с вложеными массивами - они раскрываются в один родительский

Bacrilio 25.05.2012 09:53

Цитата:

Сообщение от RJ Presto (Сообщение 1081206)
да и предполагается, что на вход придёт объект из JSON.decode
...
такой код будет генерить валидный XML, но есть проблема с вложеными массивами - они раскрываются в один родительский

Спасибо ! То что надо, в моем (частном) случае, можно и декодировать в объект и нет вложенных массивов.


Часовой пояс GMT +4, время: 21:09.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.