Không có mô tả

Tao Wen 28452fcdec cow cache is not same, as map read will modify the underlying map. use sync.Map for 1.9 and above, and mutex if sync.Map not available 7 năm trước cách đây
extra b134d86290 optimize code 8 năm trước cách đây
output_tests 7df5a67d0d Add tests for int64 8 năm trước cách đây
skip_tests be6688fc1a fix #200, do not use symbolic link in the code 8 năm trước cách đây
.codecov.yml b74ffb2e03 import github.com/stretchr/testify/require 8 năm trước cách đây
.gitignore 051434fab7 fix #198, use dep for vendoring 8 năm trước cách đây
.travis.yml f29a0391bc travis: add 1.x to go versions 8 năm trước cách đây
Gopkg.lock 051434fab7 fix #198, use dep for vendoring 8 năm trước cách đây
Gopkg.toml 051434fab7 fix #198, use dep for vendoring 8 năm trước cách đây
LICENSE 923358c07e Initial commit 9 năm trước cách đây
README.md abe3c4016b fix #179 8 năm trước cách đây
build.sh 051434fab7 fix #198, use dep for vendoring 8 năm trước cách đây
compatible_test.go 640251ab91 Fix standard compatiblility 8 năm trước cách đây
example_test.go 9ecb1fd36d fix go vet 8 năm trước cách đây
feature_adapter.go 96fcb84835 fix #215 lazy load more 8 năm trước cách đây
feature_any.go b1b003864e expose OptionalEncoder&OptionalDecoder; add attachment to Stream&Iterator for customized decoder/encoder 8 năm trước cách đây
feature_any_array.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
feature_any_bool.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
feature_any_float.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
feature_any_int32.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
feature_any_int64.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
feature_any_invalid.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
feature_any_nil.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
feature_any_number.go ea8c33040f fix #228 7 năm trước cách đây
feature_any_object.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
feature_any_string.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
feature_any_uint32.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
feature_any_uint64.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
feature_config.go 28452fcdec cow cache is not same, as map read will modify the underlying map. use sync.Map for 1.9 and above, and mutex if sync.Map not available 7 năm trước cách đây
feature_config_with_sync_map.go 28452fcdec cow cache is not same, as map read will modify the underlying map. use sync.Map for 1.9 and above, and mutex if sync.Map not available 7 năm trước cách đây
feature_config_without_sync_map.go 28452fcdec cow cache is not same, as map read will modify the underlying map. use sync.Map for 1.9 and above, and mutex if sync.Map not available 7 năm trước cách đây
feature_iter.go 9f088cbcc4 fix #195 when decode float as int, report it clearly 8 năm trước cách đây
feature_iter_array.go 6240e1e798 #185 add jsoniter.Valid 8 năm trước cách đây
feature_iter_float.go 25f147f530 add ReadNumber for Iterator. 8 năm trước cách đây
feature_iter_int.go 13f86432b8 do not use defer() in read int 8 năm trước cách đây
feature_iter_object.go f1258b01aa fix #191 do not always assume the object field is simple string 8 năm trước cách đây
feature_iter_skip.go 6240e1e798 #185 add jsoniter.Valid 8 năm trước cách đây
feature_iter_skip_sloppy.go 7e3b776024 change jsoniter-sloppy to jsoniter_sloppy 8 năm trước cách đây
feature_iter_skip_strict.go 7e3b776024 change jsoniter-sloppy to jsoniter_sloppy 8 năm trước cách đây
feature_iter_string.go 6240e1e798 #185 add jsoniter.Valid 8 năm trước cách đây
feature_json_number.go 73c7bc881e fix #180, add missing methods to jsoniter.Number 8 năm trước cách đây
feature_pool.go b1b003864e expose OptionalEncoder&OptionalDecoder; add attachment to Stream&Iterator for customized decoder/encoder 8 năm trước cách đây
feature_reflect.go a9b9c73b4d fix #207 delay unsupported type error reporting 8 năm trước cách đây
feature_reflect_array.go 807e4a8b20 Optimize 0-length array case 7 năm trước cách đây
feature_reflect_extension.go c27f6f9350 config: add OnlyTaggedField config, only process tagged fields in struct 8 năm trước cách đây
feature_reflect_map.go 945d1aaa19 fix #140 uintptr will no lock the address from gc 7 năm trước cách đây
feature_reflect_native.go c39a632e65 fix #227, fix empty json.Number 7 năm trước cách đây
feature_reflect_object.go a9b9c73b4d fix #207 delay unsupported type error reporting 8 năm trước cách đây
feature_reflect_optional.go 0ab880662f fix #219 should check real value for empty instead of just the pointer for nested field 8 năm trước cách đây
feature_reflect_slice.go 945d1aaa19 fix #140 uintptr will no lock the address from gc 7 năm trước cách đây
feature_reflect_struct_decoder.go a9b9c73b4d fix #207 delay unsupported type error reporting 8 năm trước cách đây
feature_stream.go b1b003864e expose OptionalEncoder&OptionalDecoder; add attachment to Stream&Iterator for customized decoder/encoder 8 năm trước cách đây
feature_stream_float.go bede1d7f40 fix build; add document for exported symbols 8 năm trước cách đây
feature_stream_int.go bede1d7f40 fix build; add document for exported symbols 8 năm trước cách đây
feature_stream_string.go 36b14963da #153 fix invalid utf8 using same implementation as the standard library 8 năm trước cách đây
fuzzy_mode_convert_table.md 779c3e2164 update conversion table 8 năm trước cách đây
jsoniter.go f0487718f6 document public symbols 8 năm trước cách đây
jsoniter_1dot8_only_test.go f1258b01aa fix #191 do not always assume the object field is simple string 8 năm trước cách đây
jsoniter_adapter_test.go 845d8438db #126 fix space in case map key is sorted 8 năm trước cách đây
jsoniter_alias_test.go bede1d7f40 fix build; add document for exported symbols 8 năm trước cách đây
jsoniter_any_array_test.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
jsoniter_any_bool_test.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
jsoniter_any_float_test.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
jsoniter_any_int_test.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
jsoniter_any_map_test.go b74ffb2e03 import github.com/stretchr/testify/require 8 năm trước cách đây
jsoniter_any_null_test.go b74ffb2e03 import github.com/stretchr/testify/require 8 năm trước cách đây
jsoniter_any_object_test.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
jsoniter_any_string_test.go ea8c33040f fix #228 7 năm trước cách đây
jsoniter_array_test.go c15b4d116c #139 unmarshal non base64 into []byte 8 năm trước cách đây
jsoniter_bool_test.go b5d2607a6d replace should.Equal(nil, err) with should.NoError(err) 8 năm trước cách đây
jsoniter_customize_test.go a9b9c73b4d fix #207 delay unsupported type error reporting 8 năm trước cách đây
jsoniter_demo_test.go 6d0e6f3733 fix go report card 8 năm trước cách đây
jsoniter_encode_interface_test.go 93ce14316d increase coverage 8 năm trước cách đây
jsoniter_enum_marshaler_test.go b5d2607a6d replace should.Equal(nil, err) with should.NoError(err) 8 năm trước cách đây
jsoniter_fixed_array_test.go ba3857729b Fix encoding 0-length arrays 8 năm trước cách đây
jsoniter_float_test.go 25f147f530 add ReadNumber for Iterator. 8 năm trước cách đây
jsoniter_int_test.go c39a632e65 fix #227, fix empty json.Number 7 năm trước cách đây
jsoniter_interface_test.go 6dad2de6cc fix build 8 năm trước cách đây
jsoniter_invalid_test.go 11c1cce0d8 fix #217 when input is null, non-decodable type should not be considered as error, to be compatible with stdlib 8 năm trước cách đây
jsoniter_io_test.go f6da8e62c3 #133 validate json when Skip() 8 năm trước cách đây
jsoniter_iterator_test.go be9d4ded4f Use json.Number as the return 8 năm trước cách đây
jsoniter_large_file_test.go c15b4d116c #139 unmarshal non base64 into []byte 8 năm trước cách đây
jsoniter_map_test.go bd4364ab7c #129 fix read map with reader, should use ReadMapCB instead of ReadObjectCB 8 năm trước cách đây
jsoniter_must_be_valid_test.go b74ffb2e03 import github.com/stretchr/testify/require 8 năm trước cách đây
jsoniter_nested_test.go 818ae1331a #68 number to string 8 năm trước cách đây
jsoniter_null_test.go 9f6e5962a9 Improve stdlib compatibility 8 năm trước cách đây
jsoniter_object_test.go 0ab880662f fix #219 should check real value for empty instead of just the pointer for nested field 8 năm trước cách đây
jsoniter_optional_test.go b74ffb2e03 import github.com/stretchr/testify/require 8 năm trước cách đây
jsoniter_raw_message_test.go 46b20bbbec #178 SkipAndReturnBytes should return copy of memory 8 năm trước cách đây
jsoniter_reader_test.go 9b3ec40fd9 #133 fix empty struct skip; fix ] as empty array 8 năm trước cách đây
jsoniter_reflect_native_test.go b31b1301e2 #59 add ConfigFastest 8 năm trước cách đây
jsoniter_skip_test.go aed5a81f09 fix #190 handle empty input 8 năm trước cách đây
jsoniter_sloppy_test.go 5eded4f6ae implement skip number and string strictly 8 năm trước cách đây
jsoniter_stream_test.go dbb1ef3f63 #177 flush buffer should check available again 8 năm trước cách đây
jsoniter_string_test.go 156284b028 #137 fix unicode surrogate incompatibility 8 năm trước cách đây
jsoniter_struct_decoder_test.go 2dc0031b26 #152 gofmt 8 năm trước cách đây
jsoniter_struct_encoder_test.go 1f58120d43 Always skip unexported fields when encoding 8 năm trước cách đây
jsoniter_wrap_test.go d249b05a85 rename ValueType, to avoid collision with json.Number 8 năm trước cách đây
test.sh b46d0a2324 make test faster 8 năm trước cách đây
unmarshal_input_test.go f6da8e62c3 #133 validate json when Skip() 8 năm trước cách đây

README.md

Sourcegraph GoDoc Build Status codecov rcard License Gitter chat

A high-performance 100% compatible drop-in replacement of "encoding/json"

Go开发者们请加入我们,滴滴出行平台技术部 taowen@didichuxing.com

Benchmark

benchmark

Source code: https://github.com/json-iterator/go-benchmark/blob/master/src/github.com/json-iterator/go-benchmark/benchmark_medium_payload_test.go

Raw Result (easyjson requires static code generation)

ns/op allocation bytes allocation times
std decode 35510 ns/op 1960 B/op 99 allocs/op
easyjson decode 8499 ns/op 160 B/op 4 allocs/op
jsoniter decode 5623 ns/op 160 B/op 3 allocs/op
std encode 2213 ns/op 712 B/op 5 allocs/op
easyjson encode 883 ns/op 576 B/op 3 allocs/op
jsoniter encode 837 ns/op 384 B/op 4 allocs/op

Usage

100% compatibility with standard lib

Replace

import "encoding/json"
json.Marshal(&data)

with

import "github.com/json-iterator/go"

var json = jsoniter.ConfigCompatibleWithStandardLibrary
json.Marshal(&data)

Replace

import "encoding/json"
json.Unmarshal(input, &data)

with

import "github.com/json-iterator/go"

var json = jsoniter.ConfigCompatibleWithStandardLibrary
json.Unmarshal(input, &data)

More documentation

How to get

go get github.com/json-iterator/go

Contribution Welcomed !

Contributors

Report issue or pull request, or email taowen@gmail.com, or Gitter chat