我有这样的代码:http :
//play.golang.org/p/aeEVLrc7q1
type Config struct {
Application interface{} `json:"application"`
}
type MysqlConf struct {
values map[string]string `json:"mysql"`
}
func main() {
const jsonStr = `
{
"application": {
"mysql": {
"user": "root",
"password": "",
"host": "localhost:3306",
"database": "db"
}
}
}`
dec := json.NewDecoder(strings.NewReader(jsonStr))
var c Config
c.Application = &MysqlConf{}
err := dec.Decode(&c)
if err != nil {
fmt.Println(err)
}
}
而且我不知道为什么结果结构为空。你有什么想法?
您没有values
在MysqlConf
结构中导出,因此json
程序包无法使用它。在变量名中使用大写字母可以:
type MysqlConf struct {
Values map[string]string `json:"mysql"`
}
假设代码是用c11编译的,并且启用了严格别名。 我不是在寻找一种不同的方法,我想专注于这个具体的问题,以及它是否可行或为什么不可行。 (如果我无意中犯了一些无关的错误,请告诉我,我会改正的) C11标准说: 6.2.5.28所有指向结构类型的指针应具有彼此相同的表示和对齐要求。 6.7.2.1.6结构是由成员序列组成的类型,其存储按有序顺序分配 这意味着结构A和B中指针的大小和对齐方式相同。 结构
和往常一样,我在浏览JDK8源代码时发现了非常有趣的代码: 问题是:如何可能是的实例?因为它们处于不同的层级。 我做了类似的代码片段来测试转换:
MainActivity.java 对不起,我的英语很差。
我必须和整个AAB,付款条件,货币,检查法规和姓名的号码。 我想通过迭代结果列表来实现这一点: 我的问题是如何强制转换res对象才能获得具体的列值?我读过关于在hibernate查询中创建映射的文章,但我不知道通过添加
问题内容: 很难找到该主题的任何线索。我只能找到有关将一个功能接口转换为另一个功能接口的问题,以及一些有关Java中类型转换的文章。不是我要找的东西。 这个问题是关于转换的,而我想相反地转换为任何功能接口,例如to 。 我发现的方法是围绕该方法创建一个lambda适配器: 但是我想避免写 赞成更简单的事情,例如 ➥因此,有没有办法将旧的Java 1.1反射库映射到较新的Java 8功能接口,还是我
问题内容: 如果我有: 上面是固定的-我不能更改foo或bar。另外,baz必须在bar内转换回foo struct指针。如何将&foo {}强制转换为interface {},以便在调用bar时可以将其用作参数? 问题答案: 要打开到一个很简单: 为了返回到,您可以执行 类型断言 : 或 类型开关 (类似,但可以是多种类型则很有用):