Tao Wen 8 роки тому
батько
коміт
a5ae3a2649
2 змінених файлів з 8 додано та 1 видалено
  1. 1 1
      extra/fuzzy_decoder.go
  2. 7 0
      extra/fuzzy_decoder_test.go

+ 1 - 1
extra/fuzzy_decoder.go

@@ -43,5 +43,5 @@ func (decoder *FuzzyIntDecoder) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterat
 	default:
 		iter.ReportError("FuzzyIntDecoder", "not number or string")
 	}
-	*((*int)(ptr)) = iter.ReadInt()
+	*((*int)(ptr)) = int(iter.ReadFloat64())
 }

+ 7 - 0
extra/fuzzy_decoder_test.go

@@ -44,3 +44,10 @@ func Test_int_to_int(t *testing.T) {
 	should.Nil(jsoniter.UnmarshalFromString(`100`, &val))
 	should.Equal(100, val)
 }
+
+func Test_float_to_int(t *testing.T) {
+	should := require.New(t)
+	var val int
+	should.Nil(jsoniter.UnmarshalFromString(`1.23`, &val))
+	should.Equal(1, val)
+}