@@ -25,66 +25,70 @@ public static DeconstructedPacket DeconstructPacket(Packet packet)
25
25
26
26
private static JToken _deconstructPacket ( object data , List < byte [ ] > buffers )
27
27
{
28
- if ( data == null ) return null ;
28
+ if ( data == null )
29
+ {
30
+ return null ;
31
+ }
29
32
30
33
if ( data is byte [ ] )
31
34
{
32
- var byteArray = ( byte [ ] ) data ;
35
+ var byteArray = ( byte [ ] ) data ;
33
36
return AddPlaceholder ( buffers , byteArray ) ;
34
37
}
35
- if ( data is JArray )
36
- {
37
- var newData = new JArray ( ) ;
38
- var _data = ( JArray ) data ;
39
- int len = _data . Count ;
40
- for ( int i = 0 ; i < len ; i ++ )
41
- {
42
- try
43
- {
44
- newData . Add ( _deconstructPacket ( _data [ i ] , buffers ) ) ;
45
- }
46
- catch ( Exception )
47
- {
48
- return null ;
49
- }
50
- }
51
- return newData ;
52
- }
53
- if ( ! ( data is JToken ) )
38
+
39
+ var jToken = data as JToken ;
40
+ if ( jToken == null )
54
41
{
55
42
throw new NotImplementedException ( ) ;
56
43
}
57
- var jtoken = ( JToken ) data ;
58
- if ( jtoken . Type == JTokenType . String )
59
- {
60
- return jtoken . Value < string > ( ) ;
61
- }
62
- else if ( jtoken . Type == JTokenType . Bytes )
63
- {
64
- var byteArray = jtoken . Value < byte [ ] > ( ) ;
65
- return AddPlaceholder ( buffers , byteArray ) ;
66
- }
67
- else if ( jtoken . Type == JTokenType . Object )
68
- {
69
44
70
- var newData2 = new JObject ( ) ;
71
- var _data2 = ( JObject ) jtoken ;
72
-
73
- foreach ( var property in _data2 . Properties ( ) )
74
- {
75
- try
45
+ switch ( jToken . Type )
46
+ {
47
+ case JTokenType . Object :
48
+ var newJObject = new JObject ( ) ;
49
+ var jObject = ( JObject ) jToken ;
50
+ foreach ( var property in jObject . Properties ( ) )
76
51
{
77
- newData2 [ property . Name ] = _deconstructPacket ( property . Value , buffers ) ;
52
+ try
53
+ {
54
+ newJObject [ property . Name ] = _deconstructPacket ( property . Value , buffers ) ;
55
+ }
56
+ catch ( Exception )
57
+ {
58
+ return null ;
59
+ }
78
60
}
79
- catch ( Exception )
61
+ return newJObject ;
62
+
63
+ case JTokenType . Array :
64
+ var newJArray = new JArray ( ) ;
65
+ var jArray = ( JArray ) jToken ;
66
+ for ( int i = 0 ; i < jArray . Count ; i ++ )
80
67
{
81
- return null ;
68
+ try
69
+ {
70
+ newJArray . Add ( _deconstructPacket ( jArray [ i ] , buffers ) ) ;
71
+ }
72
+ catch ( Exception )
73
+ {
74
+ return null ;
75
+ }
82
76
}
77
+ return newJArray ;
83
78
84
- }
85
- return newData2 ;
79
+ case JTokenType . Bytes :
80
+ var byteArray = jToken . Value < byte [ ] > ( ) ;
81
+ return AddPlaceholder ( buffers , byteArray ) ;
82
+
83
+ case JTokenType . None :
84
+ case JTokenType . Constructor :
85
+ case JTokenType . Property :
86
+ case JTokenType . Comment :
87
+ throw new NotImplementedException ( ) ;
88
+
89
+ default :
90
+ return jToken ;
86
91
}
87
- throw new NotImplementedException ( ) ;
88
92
}
89
93
90
94
private static JToken AddPlaceholder ( List < byte [ ] > buffers , byte [ ] byteArray )
0 commit comments