refactor(json): make jsonite optional with build tags (#1026)
* refactor(json): Restore gin support for app engine Create new folder to support multiple json package. restore gin support for app engine (disable jsonite through tags) use jsoniter $ go build -tags=jsoniter . use default json $ go build . Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com> * rename json file. Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com> * docs(json): add build tags document. * fix(docs): markdown format. * fix(json): missing space.
This commit is contained in:
		
				
					committed by
					
						 Javier Provecho Fernandez
						Javier Provecho Fernandez
					
				
			
			
				
	
			
			
			
						parent
						
							7180f2ba62
						
					
				
				
					commit
					ce670a6497
				
			| @ -88,7 +88,6 @@ BenchmarkZeus_GithubAll 		| 2000 		| 944234 	| 300688 	| 2648 | ||||
| - [x] Battle tested | ||||
| - [x] API frozen, new releases will not break your code. | ||||
|  | ||||
|  | ||||
| ## Start using it | ||||
|  | ||||
| 1. Download and install it: | ||||
| @ -141,6 +140,14 @@ $ curl https://raw.githubusercontent.com/gin-gonic/gin/master/examples/basic/mai | ||||
| $ go run main.go | ||||
| ``` | ||||
|  | ||||
| ## Build with [jsoniter](https://github.com/json-iterator/go) | ||||
|  | ||||
| Gin use `encoding/json` as default json package but you can change to [jsoniter](https://github.com/json-iterator/go) by build from other tags. | ||||
|  | ||||
| ```sh | ||||
| $ go build -tags=jsoniter . | ||||
| ``` | ||||
|  | ||||
| ## API Examples | ||||
|  | ||||
| ### Using GET, POST, PUT, PATCH, DELETE and OPTIONS | ||||
|  | ||||
| @ -7,11 +7,10 @@ package binding | ||||
| import ( | ||||
| 	"net/http" | ||||
|  | ||||
| 	"github.com/json-iterator/go" | ||||
| 	"github.com/gin-gonic/gin/json" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	json                   = jsoniter.ConfigCompatibleWithStandardLibrary | ||||
| 	EnableDecoderUseNumber = false | ||||
| ) | ||||
|  | ||||
|  | ||||
| @ -9,11 +9,9 @@ import ( | ||||
| 	"fmt" | ||||
| 	"reflect" | ||||
|  | ||||
| 	"github.com/json-iterator/go" | ||||
| 	"github.com/gin-gonic/gin/json" | ||||
| ) | ||||
|  | ||||
| var json = jsoniter.ConfigCompatibleWithStandardLibrary | ||||
|  | ||||
| type ErrorType uint64 | ||||
|  | ||||
| const ( | ||||
|  | ||||
| @ -8,6 +8,7 @@ import ( | ||||
| 	"errors" | ||||
| 	"testing" | ||||
|  | ||||
| 	"github.com/gin-gonic/gin/json" | ||||
| 	"github.com/stretchr/testify/assert" | ||||
| ) | ||||
|  | ||||
|  | ||||
							
								
								
									
										17
									
								
								json/json.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								json/json.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | ||||
| // Copyright 2017 Bo-Yi Wu.  All rights reserved. | ||||
| // Use of this source code is governed by a MIT style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // +build !jsoniter | ||||
|  | ||||
| package json | ||||
|  | ||||
| import ( | ||||
| 	"encoding/json" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	Marshal       = json.Marshal | ||||
| 	MarshalIndent = json.MarshalIndent | ||||
| 	NewDecoder    = json.NewDecoder | ||||
| ) | ||||
							
								
								
									
										18
									
								
								json/jsoniter.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								json/jsoniter.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | ||||
| // Copyright 2017 Bo-Yi Wu.  All rights reserved. | ||||
| // Use of this source code is governed by a MIT style | ||||
| // license that can be found in the LICENSE file. | ||||
|  | ||||
| // +build jsoniter | ||||
|  | ||||
| package json | ||||
|  | ||||
| import ( | ||||
| 	"github.com/json-iterator/go" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	json          = jsoniter.ConfigCompatibleWithStandardLibrary | ||||
| 	Marshal       = json.Marshal | ||||
| 	MarshalIndent = json.MarshalIndent | ||||
| 	NewDecoder    = json.NewDecoder | ||||
| ) | ||||
| @ -8,11 +8,9 @@ import ( | ||||
| 	"bytes" | ||||
| 	"net/http" | ||||
|  | ||||
| 	"github.com/json-iterator/go" | ||||
| 	"github.com/gin-gonic/gin/json" | ||||
| ) | ||||
|  | ||||
| var json = jsoniter.ConfigCompatibleWithStandardLibrary | ||||
|  | ||||
| type JSON struct { | ||||
| 	Data interface{} | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user