Форум программистов, компьютерный форум, киберфорум
Go (Golang)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 11.01.2021
Сообщений: 9

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

21.01.2021, 16:38. Показов 3980. Ответов 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.01.2021, 16:38
Ответы с готовыми решениями:

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

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

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

5
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
22.01.2021, 11:47
Цитата Сообщение от Gamerman Посмотреть сообщение
структура наперед не известна
Как сформировать указаный JSON? Как описать поле client?
Go
1
map[string]interface{}
0
0 / 0 / 0
Регистрация: 11.01.2021
Сообщений: 9
22.01.2021, 12:32  [ТС]
Так и начал делать, но как потом подвязать к структуре? Или тогда делать без структуры?
Грубо говоря, как описать в структуре "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
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
22.01.2021, 16:30
Цитата Сообщение от 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)
}
Code
1
{Ok:true Datetimedone:2020-04-03 16:44:15 Phone: Client:map[FirstName:Mirko lastname:Gamerman]}
https://play.golang.org/p/w60-SUZHRE2
1
 Аватар для serg3091
12 / 12 / 0
Регистрация: 09.10.2010
Сообщений: 145
31.01.2021, 01:23
как - то так
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)
}
Code
1
2
{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
Как то делал 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.02.2021, 17:14
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru