Один из элементов массива как объект - PullRequest
0 голосов
/ 21 мая 2018

Вопрос в том, как получить элемент "from"?Остальное не проблема

Я знаю, что в https://github.com/json-iterator/ это можно сделать, но я не мог понять, как там работает

Json:

{
  "ab": 123456789,
  "cd": [
    [
      4,
      1234,
      123456,
      1000000001,
      1234567890,
      "text",
      {
        "from": "123456"
      }
    ],
    [
      4,
      4321,
      654321,
      1000000001,
      9876543210,
      "text",
      {
        "from": "654321"
      }
    ]
  ]
}

Голанг:

type test struct {
    Ab int             `json:"ab"`
    Cd [][]interface{} `json:"cd"`
}
var testvar test
json.Unmarshal(Data, &testvar)
testvar.Cd[0][6]["from"].(string)

Ошибка:

invalid operation: testvar.Cd[0][6]["from"] (type interface {} does not support indexing)

1 Ответ

0 голосов
/ 21 мая 2018

Все просто: это map[string]interface{} следовательно

m, ok := testvar.Cd[0][6].(map[string]interface{})

fmt.Println(m, ok, m["from"])

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

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