0

I am trying to map a json data into map[string]interface{} using reflect and recursion . The function works like expected but it is not mapping all the value when it comes to nested json.

I have this following json structure:

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

I am trying to map this into string for field and interface for value where the string for field if it is a nested will be joined with a dot .. for example mapping title is map[title:brand new restarant with changed name] but for city name and id it will be map[address.city.id:25 address.city.name:Dhaka]

I wrote this script.

My goal is to get key and value in a map where key for nested json will be a string like parent.child.child.child which is a json path and the value will be the value of the last child

Final output should be like this: 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 ...] but it prints map[address.city.id:25 address.city.name:Dhaka r_id:123456 title:brand new restarant with changed name] But not all string field like description and state of address

I guess I need to sort the type then run the recursive function?

lucapette
  • 20,564
  • 6
  • 65
  • 59
sh0umik
  • 1,549
  • 2
  • 17
  • 27
  • not sure why you're doing that, but you can pass a `map[string]interface{}` directly to Unmarshal() – Yandry Pozo Jan 01 '17 at 21:38
  • updated the question with goal however simply i want to get the json path as key for nested json so that i could represent key/path = address.city.name and value = 25 – sh0umik Jan 01 '17 at 21:46
  • https://github.com/buger/jsonparser uses paths to access JSON values without unmarshalling. You may be able look at its source for ideas. – Nadh Jan 02 '17 at 03:24
  • @Nadh if jsonparser uses path then i need to generate the path from json thats the goal – sh0umik Jan 02 '17 at 04:03

0 Answers0