当前位置: 首页 > 面试题库 >

将map [interface {}] interface {}转换为map [string] string

斜俊
2023-03-14
问题内容

从来源来看,我无法影响我在地图中获得的数据,该地图以表示map[interface {}]interface {}

我需要处理所包含的数据,最好是map[string]string(其中的数据非常适合该处理)。

我还需要从数据中生成键列表,因为这些键是事先未知的。

我可以在网上找到的大多数类似问题或多或少都说这是不可能的,但是如果我的地图是m,则fmt.Println(m)表明数据在那里,可读性为map[k0:v0 K1:v1 k2:v2 ... ]

我该怎么办fmt.Println可以做什么?


问题答案:

处理未知接口的一种安全方法,只需使用fmt.Sprintf()

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

package main

import (
    "fmt"
)

func main() {

    mapInterface := make(map[interface{}]interface{})   
    mapString := make(map[string]string)

    mapInterface["k1"] = 1
    mapInterface[3] = "hello"
    mapInterface["world"] = 1.05

    for key, value := range mapInterface {
        strKey := fmt.Sprintf("%v", key)
        strValue := fmt.Sprintf("%v", value)

        mapString[strKey] = strValue
    }

    fmt.Printf("%#v", mapString)
}


 类似资料:
  • 问题内容: 我只想编写这样的代码: 我以为可以代表任何类型,所以也可以代表任何类型,现在我知道我错了,是一个整体类型,不能视为。 因此,有人可以帮助我如何使此代码正常工作,或其他解决方案吗? PS :我知道或可以相互转换,但是实际上这并不是我的意图,可能还有另一种类型,而不是and 。 问题答案: 现在我知道我错了,是一个整体类型,不能视为。 是的,那是因为它是它自己的类型(而不是其他任何类型的“

  • 我有一个实体 我想根据货币计算每个部门的金额,并将结果写在行中。例子: 结果:“莫斯科200美元,巴黎100美元,莫斯科200卢布” 对于it: 我收到一个结果: 但我不知道如何转换地图

  • 问题内容: 我正在尝试从JSON获取值并将其强制转换为int,但它不起作用,而且我不知道如何正确执行。 这是错误消息: 和代码: 问题答案: 代替 你想要一个类型断言: 您不能转换接口类型值的原因是参考的规范部分中的以下规则: 转换是形式的表达式,其中是类型,并且是可以转换为类型T的表达式。 … 在以下任何一种情况下,可以将非恒定值x转换为类型T: x可分配给T。 x的类型和T具有相同的基础类型。

  • 问题内容: 这是一个复制问题的游乐场:https : //play.golang.org/p/GgHsLffp1G 基本上,我正在尝试编写一个带有结构并返回可以将http请求解码为该类型的函数的函数。不幸的是,一些类型信息丢失了,返回的类型是map [string] interface {}而不是正确的结构类型。如何将正确的类型传达给JSON解码器?JSON解组会更好吗? 问题答案: 这似乎可行:

  • 问题内容: 无法编码 http://play.golang.org/p/Si4hd8I0JE 可以在gob中编码吗?我可以用JSON编码 问题答案: 加 http://play.golang.org/p/Dd3IzJgl0A

  • 我在一个类中有以下代码,它扩展了Primefaces的 在上面的过滤器是类型