@@ -25,66 +25,70 @@ public static DeconstructedPacket DeconstructPacket(Packet packet)
2525
2626 private static JToken _deconstructPacket ( object data , List < byte [ ] > buffers )
2727 {
28- if ( data == null ) return null ;
28+ if ( data == null )
29+ {
30+ return null ;
31+ }
2932
3033 if ( data is byte [ ] )
3134 {
32- var byteArray = ( byte [ ] ) data ;
35+ var byteArray = ( byte [ ] ) data ;
3336 return AddPlaceholder ( buffers , byteArray ) ;
3437 }
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 )
5441 {
5542 throw new NotImplementedException ( ) ;
5643 }
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- {
6944
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 ( ) )
7651 {
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+ }
7860 }
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 ++ )
8067 {
81- return null ;
68+ try
69+ {
70+ newJArray . Add ( _deconstructPacket ( jArray [ i ] , buffers ) ) ;
71+ }
72+ catch ( Exception )
73+ {
74+ return null ;
75+ }
8276 }
77+ return newJArray ;
8378
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 ;
8691 }
87- throw new NotImplementedException ( ) ;
8892 }
8993
9094 private static JToken AddPlaceholder ( List < byte [ ] > buffers , byte [ ] byteArray )
0 commit comments