|
|
|||||
[+4 06.05.14]
|
Подарок лета, JSON for AS2
В контакте как известно, можно получать 2 формата, 1 - XML, 2 - JSON
JSON приходит к нам ввиде объекта ( а точнее строки - похожей на объект) а именно, { 'a':'value', 'b':'value2' ......} Так, по скольку флеш работать с такими типами данных ( а точнее приводить типы таких данных) не может самостоятельно. Вот вам, товарищи мой класс. Возможно , уже кто то делал подобное, или даже висит на всеобщем обозрении, но я не видел. Держите и пользуйтесь кому надо. and...sorry for my bad english.... /* hit JSON standart class can convert such strings {'operator':'value', 'operatorN':'valueN'} Created by Alexander Sigankov PLS, TYPE ON FRAME : "com.JSON.HELP();" then test a movie 'ctrl+enter'** */ class com.JSON extends String { private static var count:Number = null; private static var def_array:Array = []; private static var def_2array:Array = []; private static var Obj:Object = new Object(); public static function convert(s:String, method:String):Object { /* s - string for convert, m - method, 3 types : 1 - 'object' , 2 - 'array', 3 - '2array' example of JSON input string 'op1':'value1','op2':'value2','op3':'value3','op4':'value4' */ count = s.length; s = s.split("'").join('').split('"').join('').split('{').join('').split('}').join(''); /* cleared string */ if (s.indexOf(',') == -1 && s.indexOf(':') != -1) { if (method == 'array') { return [s.substr(0, s.indexOf(':')), s.substr(s.indexOf(':')+1, s.length)]; } else if (method == 'object') { return Obj[s.substr(0, s.indexOf(':'))]=s.substr(s.indexOf(':')+1, s.length); } else if (method == '2array') { return [[s.substr(0, s.indexOf(':')), s.substr(s.indexOf(':')+1, s.length)]]; } else { trace('no method detected, please use a HELP function for true condition'); return; } } else { if (s.indexOf(',') == -1 && s.indexOf(':') == -1) { trace('scholota detected'); return 'error 300. string not coverted : '+s; } } /* retrive methods : array 2array object */ switch (method) { case 'array' : for (var i = 0; i<count; i++) { def_array.push(s.substr(0, s.indexOf(':'))); def_array.push(s.substr(s.indexOf(':')+1, s.indexOf(',')-s.indexOf(':')-1)); s = s.substr(s.indexOf(',')+1, s.length); if (s.indexOf(',') == -1) { def_array.push(s.substr(0, s.indexOf(':'))); def_array.push(s.substr(s.indexOf(':')+1, s.length)); return def_array; } } break; case 'object' : for (var i = 0; i<count; i++) { Obj[s.substr(0, s.indexOf(':'))] = s.substr(s.indexOf(':')+1, s.indexOf(',')-s.indexOf(':')-1); s = s.substr(s.indexOf(',')+1, s.length); if (s.indexOf(',') == -1) { Obj[s.substr(0, s.indexOf(':'))] = s.substr(s.indexOf(':')+1, s.length); return Obj; } } break; case '2array' : for (var i = 0; i<count; i++) { def_2array.push([s.substr(0, s.indexOf(':')), s.substr(s.indexOf(':')+1, s.indexOf(',')-s.indexOf(':')-1)]); s = s.substr(s.indexOf(',')+1, s.length); if (s.indexOf(',') == -1) { def_2array.push([s.substr(0, s.indexOf(':')), s.substr(s.indexOf(':')+1, s.length)]); return def_2array; } } break; default : return ['no method detected, please use a HELP function for true condition']; break; } return ['unkown error']; } public static function parseAndClear(s:String, a:Array, j:Array):String { count = s.length; for (var i = 0; i<count; i++) { if (a[i] != undefined && j[i] != undefined) { s = s.split(a[i]).join(j[i]); if (a[i+1] == undefined) { return s; } } else { return 'pls type true split array and join array'; } } } public static function watch(s:String):String { trace("Watched string is : "+s); return s; } static function HELP(tf:TextField):Void { var str:String = "Welcome to JSON class helper.\nCreated by Alex Sigankov(c:tambov).\nHELP : \n"; str += "Work with class functions : \n"; str += "Open a new flash AS2 document, then place class folder, near where is u fla document was created, open Action panel on frame, and type :\n"; str += "trace(com.JSON.function). For example : var str = 'flash : cool'; trace(com.JSON.convert(str,'2array')) // OUTPUT - [[flash,cool]].\n\n" str += "Function 'convert(string,method)' have 2 parametrs. 1st is a converted string, 2nd is a method of convert.\n"; str += "There are 3 methods, such as : 1 - 'array', 2-'object', 3-'2array'"; str += "\nFunction 'parseAndClear(string,split_array,join_array)' will delete and replace a new symbols in entered string"; str += "\nExample : str = '4*5&7'; trace(com.JSON.parseAndClear(str,['*'],['&'])) //output : 4&5&7\n"; str += "Function watch(string) will return input string.\n"; str += "\nThx for using my class. good luck"; if (tf) { tf.text = str; } else { trace(str); } } private static var version = 1.230710; } Последний раз редактировалось in4core; 24.07.2010 в 19:15. |
|
|||||
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
Часовой пояс GMT +4, время: 03:26. |
|
« Предыдущая тема | Следующая тема » |
|
|