对于json字段,希望能由使用者自己指定DefaultJSONHandler #2129

Open
opened 2022-04-02 12:44:36 +00:00 by ankisme · 6 comments
Contributor

目前的DefaultJSONHandler位于internal/json/json.go文件中

由于该文件位于internal路径下,所以外部无法访问和更换DefaultJSONHandler,是否提供接口由外部指定呢?

我看到那文件底下还有jsoniter.go、gojson.go等其他json库的接口文件,由// +build编译标记来控制,但这不是我想要的,我想用我自己的JSONHandler,不想用默认的

目前的DefaultJSONHandler位于[internal/json/json.go](https://gitea.com/xorm/xorm/src/branch/master/internal/json/json.go)文件中 由于该文件位于internal路径下,所以外部无法访问和更换DefaultJSONHandler,是否提供接口由外部指定呢? 我看到那文件底下还有jsoniter.go、gojson.go等其他json库的接口文件,由// +build编译标记来控制,但这不是我想要的,我想用我自己的JSONHandler,不想用默认的
lunny added the
kind
proposal
label 2022-04-24 06:34:37 +00:00
Author
Contributor

已经过去很久了,没消息了吗?

现在jsoniter已经不是性能最好的了,据说https://github.com/bytedance/sonic 性能更好

json库性能严重影响了xorm库性能,我感觉xorm没必要疲于引进最强的json库,把这个选择提供给用户就行了

已经过去很久了,没消息了吗? 现在jsoniter已经不是性能最好的了,据说https://github.com/bytedance/sonic 性能更好 json库性能严重影响了xorm库性能,我感觉xorm没必要疲于引进最强的json库,把这个选择提供给用户就行了
Author
Contributor

新增一个SetDefaultJSONHandler方法就行

package xorm

import (
	"xorm.io/xorm/internal/json"
)

func SetDefaultJSONHandler(jsonHandler json.Interface) {
	json.DefaultJSONHandler = jsonHandler
}
新增一个SetDefaultJSONHandler方法就行 ```go package xorm import ( "xorm.io/xorm/internal/json" ) func SetDefaultJSONHandler(jsonHandler json.Interface) { json.DefaultJSONHandler = jsonHandler } ```
Author
Contributor

我对提交合并请求的流程不熟悉,不然我就去提交了

我对提交合并请求的流程不熟悉,不然我就去提交了
Owner

Please send a PR.

Please send a PR.
Author
Contributor

我晚上试试

我晚上试试
Author
Contributor

刚刚提交了合并请求

#2242

刚刚提交了合并请求 见https://gitea.com/xorm/xorm/pulls/2242
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: xorm/xorm#2129
No description provided.