Golang - 使用反射和递归映射JSON

时间:2017-01-01 21:29:01

标签: json recursion go mapping go-reflect

我正在尝试使用反射和递归将json数据映射到map[string]interface{}。该函数的工作方式与预期的一样,但是当涉及到嵌套的json时,它不会映射所有值。

我有以下json结构:

{
  "r_id" : "123456",
  "title" : "brand new restarant with changed name",
  "address": {
      "city": {
        "id": "25",
        "name": "Dhaka"
      },
      "postal":"1213"
  },
  "description" : "here are some new desciption ..."
}

我正在尝试将此映射到字段的字符串和接口的值,其中字段的字符串(如果是嵌套的)将使用点.连接。例如,映射titlemap[title:brand new restarant with changed name],但对于城市nameid,它将为map[address.city.id:25 address.city.name:Dhaka]

我写了version 3.5

我的目标是在地图中获取keyvalue,其中嵌套json的键将是parent.child.child.child的字符串,其为json path,其值为最后一个孩子的价值

最终输出应该是这样的:map[address.city.id:25 address.city.name:Dhaka address.postal:1213 r_id:123456 title:brand new restarant with changed name descripton:here are some new desciption ...]但它打印map[address.city.id:25 address.city.name:Dhaka r_id:123456 title:brand new restarant with changed name]但不是所有字符串字段,例如地址的descriptionstate

我想我需要对类型进行排序然后运行递归函数?

0 个答案:

没有答案