Advertisement
Templario_7777

Example JSON

Aug 31st, 2022 (edited)
515
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.39 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "encoding/json"
  5.     "fmt"
  6.     "io/ioutil"
  7.     "log"
  8.     "os"
  9.     "os/exec"
  10. )
  11.  
  12. type Test struct {
  13.     Test []CMD `json:"data"`
  14. }
  15.  
  16. type CMD struct {
  17.     Cmd1 Command1 `json:"command1"`
  18.     Cmd2 string   `json:"command2"`
  19. }
  20.  
  21. type Command1 struct {
  22.     Cmd   string `json:"cmd"`
  23.     Param string `json:"param"`
  24. }
  25.  
  26. func executeCommand(cmd string, args_array []string) (err error) {
  27.  
  28.     args := args_array
  29.  
  30.     cmd_obj := exec.Command(cmd, args...)
  31.     cmd_obj.Stdout = os.Stdout
  32.     cmd_obj.Stderr = os.Stderr
  33.  
  34.     err = cmd_obj.Run()
  35.  
  36.     if err != nil {
  37.         log.Fatal(err)
  38.         return
  39.     }
  40.  
  41.     return nil
  42.  
  43. }
  44.  
  45. func executeCMD(cmd string) (err error) {
  46.  
  47.     cmd_obj := exec.Command(cmd)
  48.     cmd_obj.Stdout = os.Stdout
  49.     cmd_obj.Stderr = os.Stderr
  50.  
  51.     err = cmd_obj.Run()
  52.  
  53.     if err != nil {
  54.  
  55.         log.Fatal(err)
  56.         return
  57.     }
  58.  
  59.     return nil
  60. }
  61.  
  62. func main() {
  63.  
  64.     jsonFile, err := os.Open("archivoJSON.json")
  65.  
  66.     if err != nil {
  67.         fmt.Println(err)
  68.     }
  69.     fmt.Println("Successfully Opened archivoJSON.json")
  70.  
  71.     defer jsonFile.Close()
  72.  
  73.     byteValue, _ := ioutil.ReadAll(jsonFile)
  74.  
  75.     var test Test
  76.  
  77.     json.Unmarshal(byteValue, &test)
  78.  
  79.     //fmt.Println(test.Test[0].Cmd1.Cmd) ls
  80.     //fmt.Println(test.Test[0].Cmd1.Param) -l
  81.  
  82.     fmt.Print("")
  83.  
  84.     cmda := test.Test[0].Cmd1.Cmd //Comando en formato String
  85.     cmdb := test.Test[0].Cmd1.Param
  86.  
  87.     executeCommand(cmda, []string{cmdb})
  88.  
  89.     //cmd = "pwd"
  90.     //executeCMD(cmd)
  91.  
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement