![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2007
Сообщений: 33
|
Здравия !
Разыскивается JSON to XML конвертер на as3. XML to JSON есть, хочется обратную операцию. Кто нибудь встречал ? Спасибо ! |
|
|||||
|
А можно выложить XML to JSON?
|
|
|||||
|
Регистрация: Nov 2007
Сообщений: 55
|
первый же результат в гугле
http://krasimirtsonev.com/blog/artic...-json-xml2json |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 1,540
|
https://www.google.ru/#sclient=psy-a...w=1680&bih=912
Первый, второй и седьмой результат. Возьми оттуда алгоритм. |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 55
|
в связи с тем, что JSON.decode есть в as3lib, а в 11м плеере так и вообще нативно - задачу можно свести к сериализации Object в XML
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; } |
|
|||||
|
Modus ponens
|
И теперь создаем объект:
и привет objectToXML() ![]() Да, кроме этого - а что с массивами? <0>foo</0><1>bar</1> - это вообще не валидный ХМЛ.
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 24.05.2012 в 20:43. |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 55
|
Цитата:
![]() но по большому счёту, это не очень-то реалистичная ситуация да и предполагается, что на вход придёт объект из JSON.decode - там такая ситуация невозможна 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; } Последний раз редактировалось RJ Presto; 24.05.2012 в 20:49. |
|
|||||
|
Регистрация: May 2007
Сообщений: 33
|
Спасибо ! То что надо, в моем (частном) случае, можно и декодировать в объект и нет вложенных массивов.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 17:37. |
|
|
« Предыдущая тема | Следующая тема » |
|
|