-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathWebServiceParser2.as
More file actions
71 lines (66 loc) · 1.49 KB
/
WebServiceParser2.as
File metadata and controls
71 lines (66 loc) · 1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package webService2
{
import flash.utils.ByteArray;
/**this will generate dynamic classes from receved json*/
public class WebServiceParser2
{
public static function pars(pureObject:*,classType:Class):Array
{
var arrayOfthisClass:Array = [] ;
//trace(classType+" parsed to this data : "+JSON.stringify(pureObject));
for(var j = 0 ; pureObject!=null && j<pureObject.length ; j++)
{
var currentObject:Object = new classType();
/*for(var k in pureObject[j])
{
if(currentObject.hasOwnProperty(k))
{
try
{
currentObject[k] = pureObject[j][k] ;
}
catch(e)
{
trace(currentObject[k]+" is different from "+pureObject[j][k]);
}
}
}*/
currentObject = parsObjects(currentObject,pureObject[j]);
arrayOfthisClass.push(currentObject as classType);
}
//trace("♠♠♠ ♠♠♠parsed data is : "+JSON.stringify(arrayOfthisClass));
return arrayOfthisClass ;
}
private static function parsObjects(dest:Object,source:Object):Object
{
if(source is Array)
{
dest = [];
dest = source ;
}
else if(dest == null)
{
trace("web parser: dest is null");
}
else
{
for(var k in source)
{
if(dest.hasOwnProperty(k))
{
try
{
dest[k] = source[k] ;
}
catch(e)
{
trace("web parser: "+source[k]+" is different from "+dest[k]+' on '+k);
parsObjects(dest[k],source[k]);
}
}
}
}
return dest ;
}
}
}