Advertisement
Falexom

Untitled

Jul 25th, 2023
1,495
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.25 KB | None | 0 0
  1. package main // существует ли парсер жсона хуже этого?
  2.  
  3. import (
  4.     "encoding/json"
  5.     "fmt"
  6.     "os"
  7. )
  8.  
  9. type Person struct {
  10.     ID   int    `json:"id"`
  11.     NAME string `json:"name"`
  12.     AGE  int    `json:"age"`
  13. }
  14.  
  15. func encode_json(id int, name string, age int) string {
  16.     person := Person{ID: id, NAME: name, AGE: age}
  17.     item, error := json.Marshal(person)
  18.     if error != nil {
  19.         panic(error)
  20.     }
  21.     return string(item)
  22. }
  23.  
  24. func decode_json(json_data string) {
  25.     byt := []byte(json_data)
  26.     var data map[string]interface{}
  27.  
  28.     if err := json.Unmarshal(byt, &data); err != nil {
  29.         panic(err)
  30.     }
  31.     fmt.Println(data)
  32. }
  33.  
  34. func main() {
  35.     var choice int
  36.     fmt.Println("Encode or decode? 1/2")
  37.     fmt.Scan(&choice)
  38.  
  39.     if choice == 1 {
  40.         var id int
  41.         var name_person string
  42.         var age int
  43.  
  44.         fmt.Println("id:")
  45.         fmt.Scan(&id)
  46.         fmt.Println("name:")
  47.         fmt.Scan(&name_person)
  48.         fmt.Println("age:")
  49.         fmt.Scan(&age)
  50.         json_data := encode_json(id, name_person, age)
  51.         fmt.Printf("%s", json_data)
  52.     }
  53.  
  54.     if choice == 2 {
  55.         var name string
  56.         fmt.Println("Input json name")
  57.         fmt.Scan(&name)
  58.         file := name + ".json"
  59.         data, error := os.ReadFile(file)
  60.  
  61.         if error != nil {
  62.             panic(error)
  63.         }
  64.         decode_json(string(data))
  65.  
  66.     }
  67.     return
  68. }
  69.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement