我有兴趣阅读模式(json格式的文本文件)并将其解组为模式(我在.GO文件中定义了一些JSON结构)并且对于模式中的每种类型的结构,我想生成相应的.go文件,其中包含使用模板包(http://golang.org/pkg/text/template/)执行CRUD操作的代码,以生成这些文件。
模式文件中的结构示例 - {
type struct XYZ {
Type string `json:"type,omitempty"`
ResourceType string `json:"resourceType,omitempty"`
Links map[string]string `json:"links,omitempty"`
}
The text file has a JSON structured data which is something of this form -
{
"type": "collection",
"resourceType": "schema",
"links": {
"self": "…/v1/schemas",
},
"createTypes": { },
"actions": { },
"data": [ 86 items
{
"id": "schema",
"type": "schema",
"links": {
"self": "/schemas/schema",
"collection": "…/schemas",
},
...
}
}
有人可以帮助我如何使用GO模板包为不同的结构生成这些CRUD操作的代码。
答案 0 :(得分:2)
您可能会发现go generate
有用。
针对Go提出的新go工具子命令 1.4。请参阅此主题中的设计文档和评论。
http://golang.org/s/go1.4-generate
-Rob
简介
go build命令可以自动构建Go程序,但是 有时候需要进行初步处理,然后进行处理 不支持。激动人心的例子包括:
- yacc:从yacc语法(.y)文件生成.go文件
- protobufs:从协议缓冲区定义(.proto)文件生成.pb.go文件
- Unicode:从UnicodeData.txt生成表
- HTML:将.html文件嵌入Go源代码
- bindata:将诸如JPEG之类的二进制文件转换为Go source
中的字节数组可以想象出其他处理步骤:
- 字符串方法:为用作枚举常量的类型生成String()字符串方法
- 宏:在给定通用包的情况下生成自定义实现,例如来自ints的sort.Ints
该提案提供了一种平滑自动化设计 处理