diff --git a/src/LitJson/JsonMapper.cs b/src/LitJson/JsonMapper.cs index 5cd9268a..180a33a7 100644 --- a/src/LitJson/JsonMapper.cs +++ b/src/LitJson/JsonMapper.cs @@ -674,6 +674,11 @@ private static void RegisterBaseImporters () RegisterImporter (base_importers_table, typeof (double), typeof (decimal), importer); + importer = delegate (object input) { + return Convert.ToSingle((double)input); + }; + RegisterImporter(base_importers_table, typeof(double), + typeof(float), importer); importer = delegate (object input) { return Convert.ToUInt32 ((long) input); @@ -744,6 +749,12 @@ private static void WriteValue (object obj, JsonWriter writer, return; } + if (obj is Single) + { + writer.Write((float)obj); + return; + } + if (obj is Int32) { writer.Write ((int) obj); return; diff --git a/src/LitJson/JsonWriter.cs b/src/LitJson/JsonWriter.cs index 7a410b35..4bfaaac8 100644 --- a/src/LitJson/JsonWriter.cs +++ b/src/LitJson/JsonWriter.cs @@ -339,6 +339,17 @@ public void Write (double number) context.ExpectingValue = false; } + public void Write(float number) + { + DoValidation(Condition.Value); + PutNewline(); + + string str = Convert.ToString(number, number_format); + Put(str); + + context.ExpectingValue = false; + } + public void Write (int number) { DoValidation (Condition.Value);