我不熟悉golang tags
的用法,我想更改convertion的默认操作:
type CvJdRelationInfo struct {
JdId string
CvId string
Status int16
AcceptTimestamp int64
}
json
代码会自动转换:
JdId -> JdId
CvId -> CvId
Status -> Status
AcceptTimestamp -> AcceptTimestamp
bson
代码会自动转换:
JdId -> jdid
CvId -> cvid
Status -> status
AcceptTimestamp -> accepttimestamp
我可以更改默认操作,例如json
bson
代码会执行此操作:
JdId -> jdId
CvId -> cvId
Status -> status
AcceptTimestamp -> acceptTimeStamp
所以我每次都可以省略所有标签(如果默认操作正是我想要的,我为什么每次都要写标签?)
type CvJdRelationInfo struct {
JdId string `json:"jdId" bson:"jdId"`
CvId string `json:"cvId" bson:"cvId"`
Status int16 `json:"status" bson:"status"`
AcceptTimestamp int64 `json:"acceptTimestamp" bson:"acceptTimestamp"`
}
答案 0 :(得分:0)
您可以尝试:
rows=int(input('Enter number of rows: '))
columns=int(input('Enter number of columns: '))
if rows < 3 and columns < 3:
print('Invalid input')
else:
for r in range(rows):
for c in range(columns):
print(int(c+r+1) % 2, end=' ')
print()
答案 1 :(得分:0)
您无法更改encoding/json
包的默认行为。它内置于它中,没有可以改变它的导出变量或函数。没什么可讨论的。
对象的默认键字符串是结构字段名称,但可以在结构字段的标记值中指定。
这里需要注意的一点是,尽管将值封送到JSON将使用导出的大写字母名称,但是当您解组时,json
包是&#34;智能&#34;足以将小写字母与大写字段名称相匹配。
见这个例子:
s := struct{ X, Y int }{}
if err := json.Unmarshal([]byte(`{"X":1,"y":2}`), &s); err != nil {
panic(err)
}
fmt.Printf("%+v", s)
它将打印( Go Playground ):
{X:1 Y:2}
json
包正确地将"X"
和"y"
密钥与s.X
和s.Y
字段匹配,即使"y"
是小写的。