1 回答

TA貢獻(xiàn)1783條經(jīng)驗 獲得超4個贊
這只是一個例子,你能舉一個你想要的結(jié)果的例子嗎?
package main
import (
"encoding/json"
"fmt"
)
type myStruct struct {
Upload int `json:"upload"`
UnitNum int `json:"unit_num"`
Processed int `json:"processed"`
SuperReport []struct {
Info struct {
File struct {
FileType string `json:"file_type"`
FileName string `json:"file_name"`
FilePath string `json:"file_path"`
Size int `json:"size"`
Hashes []struct {
Name string `json:"name"`
Value string `json:"value"`
} `json:"hashes"`
} `json:"file"`
Identification struct {
Success bool `json:"success"`
Name string `json:"name"`
Version string `json:"version"`
Author string `json:"author"`
} `json:"identification"`
} `json:"info,omitempty"`
Qualification struct {
Final bool `json:"final"`
Qualification int `json:"qualification"`
Factor int `json:"factor"`
ScanResults []struct {
Type string `json:"type"`
Qualification int `json:"qualification"`
Factor int `json:"factor"`
Name string `json:"name"`
Version string `json:"version"`
} `json:"scan_results"`
} `json:"qualification"`
Behavior []struct {
Priority int `json:"priority"`
Section int `json:"section"`
Description string `json:"description"`
} `json:"behavior"`
Info2 struct {
File struct {
FileType string `json:"file_type"`
FileName string `json:"file_name"`
FilePath string `json:"file_path"`
Size int `json:"size"`
Properties struct {
Attributes int `json:"attributes"`
ModifiedTime int `json:"modified_time"`
AccessTime int `json:"access_time"`
CreationTime int `json:"creation_time"`
} `json:"properties"`
Entropy float64 `json:"entropy"`
Hashes []struct {
Name string `json:"name"`
Value string `json:"value"`
} `json:"hashes"`
} `json:"file"`
} `json:"info2,omitempty"`
SitesVisted []struct {
Protocol string `json:"protocol"`
SiteDomain []string `json:"site_domain"`
} `json:"sites_visted,omitempty"`
} `json:"super_report"`
}
func main() {
a := `{"upload":14234234,"unit_num":154353,"processed":1598558692,"super_report":[{"info":{"file":{"file_type":"Binary","file_name":"url_list_new.zip","file_path":"/home/user5","size":6654,"hashes":[{"name":"md5","value":"fsfdsfwerfsdfsf4566f"},{"name":"sha1","value":"8989424232gfsdfsfsdfsd"},{"name":"sha256","value":"727206bf5c786a82ddf0bc146afff395ed2ec9sdf"}]},"identification":{"success":true,"name":"ZIP","version":"Gen5","author":"EnigmaTesters"}},"qualification":{"final":false,"qualification":0,"factor":0,"scan_results":[{"type":"internal","qualification":0,"factor":0,"name":"Azure Repo Sensor 6","version":"2.7.9.3"}]},"behavior":[{"priority":3,"section":14,"description":"Crashes"}]},{"info":{"file":{"file_type":"PE","file_name":"house.txt","file_path":"/home/user5/","size":8862,"properties":{"attributes":0,"modified_time":1593481746,"access_time":0,"creation_time":0},"entropy":7.8,"hashes":[{"name":"md5","value":"sdfsdfssdfsdfsfsfsdfsdvxcvxvcv"},{"name":"sha1","value":"xxxfsdfwr234234213sfsfsdfsfsd"},{"name":"sha256","value":"xzfrwerwerwerfdsa890876543234234ssdfxcvsdfsdf"}]}},"qualification":{"final":false,"qualification":0,"factor":0,"scan_results":[{"type":"internal","qualification":0,"factor":0,"name":"Azure Sentinel","version":"2.7.9.3"}]},"behavior":[{"priority":5,"protocol":12,"description":"Uses /tmp folder"},{"priority":5,"protocol":0,"description":"5 dirs"},{"priority":5,"protocol":0,"description":"Creates dir"},{"priority":5,"protocol":10,"description":"updates struct"},{"priority":5,"protocol":12,"description":"Locates home"},{"priority":4,"protocol":22,"description":"Created a text file."},{"priority":3,"protocol":0,"description":"Too many stars in text file "}],"sites_visted":[{"protocol":"https","site_domain":["bonn.sh","conn.sh","t00ls.ru","cdr.eu"]},{"protocol":"https","site_domain":["http://bin.com/jRersdf1u","htto://bin.com/pxcsdfssYZ"]},{"protocol":"ipv4","site_domain":["8.8.9.9","1.1.1.1","67.31.88.31:443"]}]}]}`
var myStruct myStruct
var address []string
if err := json.Unmarshal([]byte(a), &myStruct); err != nil {
panic(err)
}
for _, report := range myStruct.SuperReport {
for _, k := range report.SitesVisted {
fmt.Printf("%+v\n", k)
address = append(address, k.SiteDomain...)
}
}
fmt.Println(address)
}
輸出:
{Protocol:https SiteDomain:[bonn.sh conn.sh t00ls.ru cdr.eu]}
{Protocol:https SiteDomain:[http://bin.com/jRersdf1u htto://bin.com/pxcsdfssYZ]}
{Protocol:ipv4 SiteDomain:[8.8.9.9 1.1.1.1 67.31.88.31:443]}
[bonn.sh conn.sh t00ls.ru cdr.eu http://bin.com/jRersdf1u htto://bin.com/pxcsdfssYZ 8.8.9.9 1.1.1.1 67.31.88.31:443]
- 1 回答
- 0 關(guān)注
- 138 瀏覽
添加回答
舉報