Тема: JSON -> XML ?
Показать сообщение отдельно
Старый 20.11.2010, 18:14
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 12  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
о, на что-то такое я и надеялся
буду смотреть

Добавлено через 1 час 18 минут
все работает

возможно, кому понадобится полностью (оформил как простой код, поскольку в AS3 перекодируется JSON):

Код:
package 
{
	import flash.display.*;
	import flash.events.*;
	import flash.xml.*;
	import mx.rpc.xml.SimpleXMLEncoder;
	import com.adobe.serialization.json.*;	
	
	public class Main extends Sprite 
	{
		
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		private function init(e:Event = null) : void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			
			var stringJSON:String = '{"param1":"1","param2":"</blabla","param3":"blabla]]>",'
	                               +'"paramArray":[{"id":"1","value":"111"},{"id":"2","value":"222"}]}';

			var objXML:XML = jsonToXML(stringJSON);
			trace(objXML);
		}
		
		private function jsonToXML(stringJSON:String) : XML
		{
			var obj:Object = JSON.decode(stringJSON); 
			var objXML:XML = objectToXML(obj);
			
			return(objXML);
		}
		
		private function objectToXML(object:Object, rootNode:String = "root") : XML
		{
			var xmlDocument:XMLDocument = new XMLDocument();
			var xmlEncoder:SimpleXMLEncoder = new SimpleXMLEncoder(xmlDocument);
			xmlEncoder.encodeValue(object, new QName(rootNode), xmlDocument);
		 
			return new XML(xmlDocument.toString());
		}
	}
	
}

вывод:

Код:
<root>
  <param1>1</param1>
  <param2>&lt;/blabla</param2>
  <param3>blabla]]&gt;</param3>
  <paramArray>
    <item>
      <id>1</id>
      <value>111</value>
    </item>
    <item>
      <id>2</id>
      <value>222</value>
    </item>
  </paramArray>
</root>


Последний раз редактировалось mikhailk; 20.11.2010 в 19:40.