Получение неизвестных имен ключей и значений из списка массивов JSON - PullRequest
0 голосов
/ 03 августа 2020
[
        {"id_A": 1, "name_A": "Value_A"},
        {"id_B": 2, "name_B": "Value_B"}
]

«id_ » и «name_ » могут измениться, и мне нужно восстановить имена обоих ключей для создания структуры.

как это сделать?

https://play.golang.org/p/OXqpudiWWcH

1 Ответ

1 голос
/ 03 августа 2020

если у вас есть ключ, который не исправлен, вы можете использовать только интерфейс {}, который необходимо демаршалировать json в []interface{} и использовать утверждение типа в map[string]interface{}

var body []interface{}

    _ = json.Unmarshal([]byte(json2), &body)
    fmt.Printf("Unmarshaled: %v\n", body)
    
    // range through array interface[]
    for _, opt := range body { 
    
        // assert interface{} to map[string]interface{} 
        if item, ok := opt.(map[string]interface{}); ok { 
            for v, opt := range item { 
                fmt.Printf("[%s] key -> %s  value -> %s\n", v, opt, "fake")
            }
        }
    }

полный код на основе вашего примера https://play.golang.org/p/PepxOVlB7u4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...