github.com/angenalZZZ/gofunc@v0.0.0-20210507121333-48ff1be3917b/data/file.go (about) 1 package data 2 3 import ( 4 "bytes" 5 6 json "github.com/json-iterator/go" 7 ) 8 9 // ObjectJSON gets json object map[string]interface{} 10 func ObjectJSON(buf []byte) (map[string]interface{}, error) { 11 var record map[string]interface{} 12 err := json.Unmarshal(buf, &record) 13 return record, err 14 } 15 16 // ListJSON gets json list []map[string]interface{} 17 func ListJSON(buf []byte) ([]map[string]interface{}, error) { 18 var records []map[string]interface{} 19 err := json.Unmarshal(buf, &records) 20 return records, err 21 } 22 23 // ListData gets json list of item RawMessage []byte 24 func ListData(buf []byte) ([][]byte, error) { 25 var s [][]byte 26 buf = bytes.TrimSpace(buf) 27 if buf[0] == '[' && buf[len(buf)-1] == ']' { 28 var records []map[string]interface{} 29 err := json.Unmarshal(buf, &records) 30 if err != nil { 31 return s, err 32 } 33 for _, item := range records { 34 b, _ := json.Marshal(item) 35 s = append(s, b) 36 } 37 } else { 38 s = append(s, buf) 39 } 40 return s, nil 41 }