将JSON中的逗号分隔的字符串或整数值解组为数组

时间:2019-11-07 06:00:11

标签: arrays json go

我有一段代码将键/值存储收集到json中。现在,键值存储区可能包含数组作为值,下面是json

{
  "name":"abc",
  "address":"some address value",
  "phonenumber": "\"123123\",\"7897897\",\"45345345\""
}

我想将其解组到struct

type myobj struct{
  Name string `json:"name"`
  Address string `json:"address`
  PhoneNumbers []string
}

phonenumbers字段是json中逗号分隔的列表,我想将其解组为字符串数组,该如何处理?

1 个答案:

答案 0 :(得分:2)

您可以将其解组为字符串,然后将其拆分。

type myobj struct{
  Name string `json:"name"`
  Address string `json:"address`
  PhoneNumberRaw string `json:"phonenumber"`

  PhoneNumbers []string `json:"-"`
}

// Unmarshal.
var o myobj
json.Unmarshal(yourData, &o)

// Remove the quotes and split the phone number string by comma.
o.PhoneNumbers = strings.Split(strings.ReplaceAll(o.PhoneNumberRaw, `"`, ""), ",")