编译/ json中是否存在未包含未导出字段的技术原因?如果没有,这是一个任意的决定可以有一个额外的后门选项(说'+')包括即使未导出?
要求客户端代码导出以获得此功能感觉很不幸,特别是如果小写提供封装或者对编组结构的决定要比它们的设计晚得多.
人们如何处理这个问题?只出口一切?
此外,不导出字段名称使得难以遵循建议的习语.我认为如果结构X有字段Y,则不能有一个存取方法Y().如果你想提供对Y的界面访问,你必须为getter提出一个新的名字,不管你会得到什么非惯用的东西,根据http://golang.org/doc/effective_go.html#Getters
我正在玩Go并且难以理解为什么json编码和解码对我不起作用
我想我几乎逐字地复制了这些例子,但是输出结果表明编组和解组都没有返回任何数据.他们也没有给出错误.
任何人都可以暗示我哪里出错了?
我的示例代码:去游乐场
package main
import "fmt"
import "encoding/json"
type testStruct struct {
clip string `json:"clip"`
}
func main() {
//unmarshal test
var testJson = "{\"clip\":\"test\"}"
var t testStruct
var jsonData = []byte(testJson)
err := json.Unmarshal(jsonData, &t)
if err != nil {
fmt.Printf("There was an error decoding the json. err = %s", err)
return
}
fmt.Printf("contents of decoded json is: %#v\r\n", t)
//marshal test
t.clip = "test2"
data, err := json.Marshal(&t)
if err != nil {
fmt.Printf("There was …Run Code Online (Sandbox Code Playgroud)