是否有辦法以這種方式馬歇爾JSON數據,它可以在零件/部分解組?
讓我們假設數據的上半部分是一個「代碼」,它將指示下半部分做什麼......例如根據「代碼」將下半部分解組爲特定的結構。
有兩種結構可作爲下半區發送...
type Range Struct {
Start int
End int
}
type User struct {
ID int
Pass int
}
僞碼示例
它可能看起來像這樣...
message := &Message{
Code: 4,
&Range {
Start: 1,
End: 10,
}
}
Itt可能看起來像這樣...
message := &Message{
Code: 3,
&User {
ID: 1,
Pass: 1234,
}
}
所以,解組數據我能...
// get code from top half
m := Message{}
err = json.UnMarshallTopHalf(byteArray, &m)
if m.Code == 4 {
// ok, the code was four, lets unmarshall into type Range
r := Range{}
json.UnmarshalBottomHalf(byteArray, &r)
}
我已經看過JSON & Go學習如何編組和解組定義的結構時。我能做到這一點,但我不能任意數據,在上面的例子中想出一個辦法......
正確的選擇可能是使用的接口,見http://gregtrowbridge.com/golang-json-serialization-with-interfaces/- 沒有試過這段代碼,但是這種方法看起來是正確的。 – Ravi
@Ravi |我相信這是我必須採取的方法。如果你把它寫成某種形式的答案,我會接受它。 –