go readfile json
https://oktools.net/json2go json转go struct
package main
import (
"io/ioutil"
"encoding/json"
"fmt"
)
type AutoGenerated struct {
NodeName string `json:"node_name"`
UpdateInterval int `json:"update_interval"`
TCPMessagePort int `json:"tcp_message_port"`
AlarmLevel int `json:"alarm_level"`
SentinelEnable int `json:"sentinel_enable"`
LanguageMode int `json:"language_mode"`
ElasticEnable int `json:"elastic_enable"`
SystemMode int `json:"system_mode"`
AutoRequest int `json:"auto_request"`
PollEnable int `json:"poll_enable"`
PollInterval int `json:"poll_interval"`
PollXavier int `json:"poll_xavier"`
Poll1060 int `json:"poll_1060"`
PollP4 int `json:"poll_p4"`
PollT4 int `json:"poll_t4"`
ApplicationID string `json:"application_id"`
WebSdk string `json:"web_sdk"`
HwvcnDomain string `json:"hwvcn_domain"`
HwvcnCallback string `json:"hwvcn_callback"`
MinDiskSize int `json:"min_disk_size"`
TaskManager TaskManager `json:"task_manager"`
PluginManager PluginManager `json:"plugin_manager"`
CameraManager CameraManager `json:"camera_manager"`
PayloadManager PayloadManager `json:"payload_manager"`
DependencyManager DependencyManager `json:"dependency_manager"`
MetricCollector MetricCollector `json:"metric_collector"`
Cloud Cloud `json:"cloud"`
MessageServer string `json:"message_server"`
PhotoServer string `json:"photo_server"`
VideoServer string `json:"video_server"`
PackageServer string `json:"package_server"`
EventUploadPath string `json:"event_upload_path"`
LogValidDays int `json:"log_valid_days"`
UsscTaskTimeout int `json:"ussc_task_timeout"`
}
type TaskManager struct {
RunnerCount int `json:"runner_count"`
QueueSize int `json:"queue_size"`
}
type PluginManager struct {
Plugins []string `json:"plugins"`
}
type CameraManager struct {
Cameras string `json:"cameras"`
}
type Payloads struct {
Name string `json:"name"`
TypeID int `json:"type_id"`
RunCondition int `json:"run_condition"`
RunMode int `json:"run_mode"`
MonopolyNum int `json:"monopoly_num"`
Combination []interface{} `json:"combination"`
Folder string `json:"folder"`
Executable string `json:"executable"`
Commandline string `json:"commandline"`
HeartbeatTimeout int `json:"heartbeat_timeout"`
ShutdownTimeout int `json:"shutdown_timeout"`
RestartTrialCount int `json:"restart_trial_count"`
Environment []interface{} `json:"environment"`
LogControl int `json:"log_control"`
SentinelKey int `json:"sentinel_key"`
RollbackEnable int `json:"rollback_enable"`
}
type PayloadManager struct {
MultiGpu int `json:"multi_gpu"`
Payloads []Payloads `json:"payloads"`
}
type DependencyManager struct {
Folder string `json:"folder"`
Executable string `json:"executable"`
}
type MetricCollector struct {
UpdateInterval int `json:"update_interval"`
DiskUsagePath string `json:"disk_usage_path"`
}
type Cloud struct {
TCPAddress string `json:"tcp_address"`
HeartbeatInterval int `json:"heartbeat_interval"`
RecvTimeout int `json:"recv_timeout"`
RetransmitTimeout int `json:"retransmit_timeout"`
RetransmitTrialCount int `json:"retransmit_trial_count"`
TokenRefreshBefore int `json:"token_refresh_before"`
}
func main() {
JsonParse := NewJsonStruct()
v := AutoGenerated{}
JsonParse.Load("./daemon.json", &v)
fmt.Println(v.NodeName)
fmt.Println(v.PayloadManager.MultiGpu)
fmt.Println(v.PayloadManager.Payloads[1].Name)
fmt.Println( len(v.PayloadManager.Payloads))
for i := 0; i < len(v.PayloadManager.Payloads); i++ {
fmt.Println( v.PayloadManager.Payloads[i].Name )
}
}
type JsonStruct struct {
}
func NewJsonStruct() *JsonStruct {
return &JsonStruct{}
}
func (jst *JsonStruct) Load(filename string, v interface{}) {
data, err := ioutil.ReadFile(filename)
if err != nil {
return
}
err = json.Unmarshal(data, v)
if err != nil {
return
}
}

浙公网安备 33010602011771号