使用GO从aa文件中解组JSON内容并使用GO模板包生成.go文件
问题描述:
我有兴趣阅读模式(json格式的文本文件)并将其解组为模式(为此我有一些JSON结构定义在.GO文件)对于Schema中的每种类型的结构,我想要生成一个相应的.go文件,其中包含使用模板包(http://golang.org/pkg/text/template/)执行CRUD操作的代码以生成这些文件。在模式文件结构的使用GO从aa文件中解组JSON内容并使用GO模板包生成.go文件
示例 - {
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操作的代码。
答
您可能会感兴趣go generate
。
新增设的围棋子工具提出了围棋 1.4。请参阅此主题中的设计文档和评论。
http://golang.org/s/go1.4-generate
-Rob
介绍
的去打造命令自动围棋程序,但 所以建设需要几次初步处理,去掉 不支持的处理。激励的例子包括:
- YACC:从yacc语法(.Y)产生。去文件文件
- protobufs:产生.pb.go从协议缓存定义(.proto)文件文件
- 的Unicode:生成从UnicodeData.txt表
- HTML:嵌入HTML文件成围棋源代码
- bindata:翻译二进制文件如JPEG成字节数组在Go源
还有其他处理步骤可以想见:
- 字符串方法:为作为枚举常数
- 宏类型生成字符串()字符串方法:产生给定的广义包定制实现方式中,如从sort.Ints整数
本提案提供了一种用于这种处理的平滑自动化的设计。
我用来在GO中模板包来生成代码。我必须先自己编写一个模板,并使用模板语法替换需要通用的内容,如{{schema.ID }}。当程序像这样运行并使用os.Create(schema.ID +“.go”)时,它会生成带有模式名称的.GO文件。 – psbits 2014-11-25 01:10:53