Форум программистов, компьютерный форум, киберфорум
Go (Golang)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 11.01.2021
Сообщений: 6
1

Как описать нестандартную структуру для JSON

21.01.2021, 16:38. Просмотров 752. Ответов 5
Метки json (Все метки)

Есть такой JSON
JSON
1
2
3
4
{"ok":true,
"datetimedone":"2020-04-03 16:44:15",
"client":{"FirstName": "Mirko", "lastname": "Gamerman"}
}
{"FirstName": "Mirko", "lastname": "Gamerman"} - это есть в БД, структура наперед не известна
Как сформировать указаный JSON? Как описать поле client?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2021, 16:38
Ответы с готовыми решениями:

Описать структуру для хранения информации
1. Описать структуру для хранения следующей информации: - название продукции - стоимость за...

Описать структуру для хранения следующей информации
Нужно срочно написать, а не выходит(((( Описать структуру для хранения следующей информации (при...

Описать структуру для обработки информации о студентах
Информация включает в себя: ФИО студента. Группа. Пол. Экзаменационные оценки по высшей...

Для представления данных в памяти описать структуру
Для представления данных в памяти описать структуру. 1)Языки программирования. Название, год...

5
3251 / 2314 / 421
Регистрация: 28.04.2012
Сообщений: 7,713
22.01.2021, 11:47 2
Цитата Сообщение от Gamerman Посмотреть сообщение
структура наперед не известна
Как сформировать указаный JSON? Как описать поле client?
Go
1
map[string]interface{}
0
0 / 0 / 0
Регистрация: 11.01.2021
Сообщений: 6
22.01.2021, 12:32  [ТС] 3
Так и начал делать, но как потом подвязать к структуре? Или тогда делать без структуры?
Грубо говоря, как описать в структуре "client"?

Добавлено через 2 минуты
Если делать
Go
1
2
3
4
5
6
type Response_getform struct {
    Ok           bool                   `json:"ok"`
    Datetimedone string                 `json:"datetimedone"`
    Phone        string                 `json:"phone"`
    Client         map[string]interface{} `json:"client"`
}
, то получается вложение клиент в клиент
0
3251 / 2314 / 421
Регистрация: 28.04.2012
Сообщений: 7,713
22.01.2021, 16:30 4
Цитата Сообщение от Gamerman Посмотреть сообщение
то получается вложение клиент в клиент
Что? Какое ещё вложение?

Go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package main
 
import (
    "encoding/json"
    "fmt"
    "log"
)
 
const payload = `
{
  "ok": true,
  "datetimedone": "2020-04-03 16:44:15",
  "client": {
    "FirstName": "Mirko",
    "lastname" : "Gamerman"
  }
}`
 
type Response struct {
    Ok           bool                   `json:"ok"`
    Datetimedone string                 `json:"datetimedone"`
    Phone        string                 `json:"phone"`
    Client       map[string]interface{} `json:"client"`
}
 
func main() {
    var r Response
    if err := json.Unmarshal([]byte(payload), &r); err != nil {
        log.Fatal(err)
    }
    fmt.Printf("%+v\n", r)
}
Код
{Ok:true Datetimedone:2020-04-03 16:44:15 Phone: Client:map[FirstName:Mirko lastname:Gamerman]}
https://play.golang.org/p/w60-SUZHRE2
1
12 / 12 / 0
Регистрация: 09.10.2010
Сообщений: 145
31.01.2021, 01:23 5
как - то так
Go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package main
 
import (
    "encoding/json"
    "fmt"
    "log"
)
 
const payload = `
{
  "ok": true,
  "datetimedone": "2020-04-03 16:44:15",
  "client": {
    "FirstName": "Mirko",
    "lastname" : "Gamerman"
  }
}`
 
type Response struct {
    Ok           bool   `json:"ok"`
    Datetimedone string `json:"datetimedone"`
    Phone        string `json:"phone"`
    Client       struct {
        FirstName string `json:"FirstName"`
        Lastname  string `json:"lastname"`
    } `json:"client"`
}
 
func main() {
    var r Response
    if err := json.Unmarshal([]byte(payload), &r); err != nil {
        log.Fatal(err)
    }
    fmt.Printf("%+v\n", r)
    fmt.Println(r.Client.FirstName, r.Client.Lastname)
}
Код
{Ok:true Datetimedone:2020-04-03 16:44:15 Phone: Client:{FirstName:Mirko Lastname:Gamerman}}
Mirko Gamerman
0
1 / 1 / 2
Регистрация: 08.12.2015
Сообщений: 7
01.02.2021, 17:14 6
Как то делал helper для того чтобы парсить динамически json

Пример:

Go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package main
 
import (
    "fmt"
    "github.com/akula410/helper"
)
 
func main() {
    var json = []byte(`{"ok":true,
                        "datetimedone":"2020-04-03 16:44:15",
                        "client":{"FirstName": "Mirko", "lastname": "Gamerman"}
                        }`)
 
    var data = helper.Transform.ToMap(helper.Transform.JsonToInterface(json), make(map[string]interface{}, 0))
 
    for key, value := range data{
        switch v := value.(type) {
        case nil:fmt.Println(key, value)
        case bool:fmt.Println(key, helper.Transform.ToBool(value, false))
        case string:fmt.Println(key, helper.Transform.ToString(value, ""))
        default:
            fmt.Println(key, helper.Transform.ToMap(v, make(map[string]interface{})))
        }
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.02.2021, 17:14

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как получить нужную мне структуру HTML из JSON
Нужен совет что поменять в json структуре или в коде , чтоб получить такую разметку: <div...

Как правильно сформировать json структуру по следующему формату
Что-то не получается сформировать структуру json. Параметры и значения вымышленные, нужно точно по...

Для хранения данных о ноутбуках описать структуру NOTEBOOK
Для хранения данных о ноутбуках описать структуру вида (при необходимости дополнив ее): ...

Для хранения данных о планшетных сканерах описать структуру
Для хранения данных о планшетных сканерах описать структуру вида: struct scan_info{ char...

Для хранения данных о ноутбуках описать структуру вида
Для хранения данных о ноутбуках описать структуру вида: struct NOTEBOOK { char m odel; // н...

Описать структуру с именем Marsh (для работы с маршрутами)
Описать структуру с именем MARSH, содержащую следующие поля: ■ название начального пункта...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.