我尝试将这个嵌套的map转换为JSON字符串。
map[
description:Foo Bar
url:http://foobar.co.uk
theme_color:#1b1b1b
markdown:kramdown
sass:map[
style:compressed
]
collections:map[
projects:map[
output:true
permalink:/project/:path
]
jobs:map[
output:true
permalink:/job/:path
]
]
title:Foo Bar
email:foo@foobarco.uk
]
(对来自fmt.Printf("%v", m)
的输出进行了清理)
最初读取并解析配置文件以生成该映射表,因此我不知道字段事先,这意味着我不能(?)使用结构体。
从YAML反序列化到这个map[string]interface{}
的映射表中很好地工作,但是当我将这个映射表传递给json.Marshal
时,我会收到以下错误。
json: unsupported type: map[interface {}]interface{}
从阅读资料中可以看出,这个错误是因为 JSON 只支持字符串键而引发的。令我困惑的是,上面的 map 似乎没有任何非字符串键。
如果我删除嵌套的 sass
和 collections
键,它就可以正常转换了。
是否可以对该 map 进行一些检查以确认所有的键实际上都是 string
而不仅仅是看起来像 interface{}
的字符串?