From c281b4a30d49eb6297208a5db7bd72a09ab964f5 Mon Sep 17 00:00:00 2001 From: ayflying Date: Tue, 4 Mar 2025 14:10:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E8=A1=A8=E5=B7=A5=E5=85=B7=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0json=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package/excel/excel.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/package/excel/excel.go b/package/excel/excel.go index 6b19cc0..6db74f2 100644 --- a/package/excel/excel.go +++ b/package/excel/excel.go @@ -3,6 +3,7 @@ package excel import ( "context" "github.com/ayflying/excel2json" + "github.com/goccy/go-json" "github.com/gogf/gf/v2/encoding/gjson" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/os/gctx" @@ -27,6 +28,7 @@ type FileItem struct { Items []string `json:"items" dc:"道具字段"` ItemsMap []string `json:"items_map" dc:"道具字段map格式"` Slice map[string]string `json:"slice" dc:"切片"` + Json []string `json:"json" dc:"json"` } type Excel struct { @@ -78,6 +80,10 @@ func (s *Excel) ExcelLoad(ctx context.Context, fileItem *FileItem, mainPath stri if len(fileItem.Slice) > 0 { list = s.sliceFormat(list, fileItem.Slice) } + //json格式转换 + if len(fileItem.Json) > 0 { + list = s.jsonFormat(list, fileItem.Json) + } //拼接json tempJson = append(tempJson, list...) @@ -177,3 +183,20 @@ func (s *Excel) sliceFormat(list []interface{}, Slice map[string]string) []inter return list } + +func (s *Excel) jsonFormat(list []interface{}, Items []string) []interface{} { + for k2, v2 := range list { + for k3, v3 := range v2.(g.Map) { + if gstr.InArray(Items, k3) { + if _, ok := v3.(string); ok { + var get interface{} + json.Unmarshal([]byte(v3.(string)), &get) + list[k2].(g.Map)[k3] = get + } else { + g.Log().Errorf(gctx.New(), "当前类型断言失败:%v,list=%v", v3, v2) + } + } + } + } + return list +}