@@ -405,7 +405,7 @@ private static object ReadValue (Type inst_type, JsonReader reader)
405405 list = new ArrayList ( ) ;
406406 elem_type = inst_type . GetElementType ( ) ;
407407 }
408-
408+
409409 list . Clear ( ) ;
410410
411411 while ( true ) {
@@ -829,10 +829,20 @@ private static void WriteValue (object obj, JsonWriter writer,
829829 if ( obj is Enum ) {
830830 Type e_type = Enum . GetUnderlyingType ( obj_type ) ;
831831
832- if ( e_type == typeof ( long )
833- || e_type == typeof ( uint )
834- || e_type == typeof ( ulong ) )
832+ if ( e_type == typeof ( long ) )
833+ writer . Write ( ( long ) obj ) ;
834+ else if ( e_type == typeof ( uint ) )
835+ writer . Write ( ( uint ) obj ) ;
836+ else if ( e_type == typeof ( ulong ) )
835837 writer . Write ( ( ulong ) obj ) ;
838+ else if ( e_type == typeof ( ushort ) )
839+ writer . Write ( ( ushort ) obj ) ;
840+ else if ( e_type == typeof ( short ) )
841+ writer . Write ( ( short ) obj ) ;
842+ else if ( e_type == typeof ( byte ) )
843+ writer . Write ( ( byte ) obj ) ;
844+ else if ( e_type == typeof ( sbyte ) )
845+ writer . Write ( ( sbyte ) obj ) ;
836846 else
837847 writer . Write ( ( int ) obj ) ;
838848
@@ -920,7 +930,7 @@ public static T ToObject<T> (string json)
920930
921931 return ( T ) ReadValue ( typeof ( T ) , reader ) ;
922932 }
923-
933+
924934 public static object ToObject ( string json , Type ConvertType )
925935 {
926936 JsonReader reader = new JsonReader ( json ) ;
0 commit comments