@@ -194,35 +194,42 @@ private Map<String, Object> toJson() {
194194
195195 private static Object deserializeValue (Object value , Type type ) {
196196
197- if (Type .ARRAY .equals (type ) || Type .SET .equals (type )) {
198- try (StringReader reader = new StringReader (JSON .toJson (value ));
199- JsonInput input = JSON .newInput (reader )) {
200- value = input .read (new TypeToken <List <RemoteValue >>() {}.getType ());
201- }
202- } else if (Type .MAP .equals (type ) || Type .OBJECT .equals (type )) {
203- List <List <Object >> result = (List <List <Object >>) value ;
204- Map <Object , RemoteValue > map = new HashMap <>();
205-
206- for (List <Object > list : result ) {
207- Object key = list .get (0 );
208- if (!(key instanceof String )) {
209- try (StringReader reader = new StringReader (JSON .toJson (key ));
210- JsonInput keyInput = JSON .newInput (reader )) {
211- key = keyInput .read (RemoteValue .class );
197+ switch (type ) {
198+ case ARRAY :
199+ case SET :
200+ try (StringReader reader = new StringReader (JSON .toJson (value ));
201+ JsonInput input = JSON .newInput (reader )) {
202+ value = input .read (new TypeToken <List <RemoteValue >>() {}.getType ());
203+ }
204+ break ;
205+
206+ case MAP :
207+ case OBJECT :
208+ List <List <Object >> result = (List <List <Object >>) value ;
209+ Map <Object , RemoteValue > map = new HashMap <>();
210+
211+ for (List <Object > list : result ) {
212+ Object key = list .get (0 );
213+ if (!(key instanceof String )) {
214+ try (StringReader reader = new StringReader (JSON .toJson (key ));
215+ JsonInput keyInput = JSON .newInput (reader )) {
216+ key = keyInput .read (RemoteValue .class );
217+ }
218+ }
219+ try (StringReader reader = new StringReader (JSON .toJson (list .get (1 )));
220+ JsonInput valueInput = JSON .newInput (reader )) {
221+ RemoteValue value1 = valueInput .read (RemoteValue .class );
222+ map .put (key , value1 );
212223 }
213224 }
214- try (StringReader reader = new StringReader (JSON .toJson (list .get (1 )));
215- JsonInput valueInput = JSON .newInput (reader )) {
216- RemoteValue value1 = valueInput .read (RemoteValue .class );
217- map .put (key , value1 );
225+ value = map ;
226+ break ;
227+
228+ case REGULAR_EXPRESSION :
229+ try (StringReader reader = new StringReader (JSON .toJson (value ));
230+ JsonInput input = JSON .newInput (reader )) {
231+ value = input .read (RegExpValue .class );
218232 }
219- }
220- value = map ;
221- } else if (Type .REGULAR_EXPRESSION .equals (type )) {
222- try (StringReader reader = new StringReader (JSON .toJson (value ));
223- JsonInput input = JSON .newInput (reader )) {
224- value = input .read (RegExpValue .class );
225- }
226233 }
227234
228235 return value ;
0 commit comments