亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go:解組 Neo4j 事務的結果

Go:解組 Neo4j 事務的結果

Go
喵喔喔 2021-07-27 16:35:47
我試圖找出解組從 Neo4j 事務中獲得的 JSON 結果的最佳方法。數據作為一組列和數據返回,我試圖將它們硬塞到 Go 結構中。這是我需要結果的結構:type Person struct {  Id   string `json:id`  Name string `json:name`}type Persons []*Person這是我從交易中返回的 JSON:{  "results":  [    {"columns":[],"data":[]},      {"columns":[],"data":[]},    {"columns":[],"data":[]},    {"columns":["r"],"data":   // I only care this result which has data      [        {"row":[{"id":"1","name":"test1"}]},  // actual results        {"row":[{"id":"2","name":"test2"}]},        {"row":[{"id":"3","name":"test3"}]}      ]    }  ],  "errors":[]}這只是一個特殊的例子。其他事務將具有可變數量results(只有我關心的最后一個),并且需要將其解組到不同的結構中。我不想創建必須為每個模型結構創建一個唯一的結果結構。這是另一個例子:這是一個不同的結構:type Phone struct {  Id     string `json:id`  Number string `json:number`}type Phones []*Phone以及相應的 JSON:{  "results":  [    {"columns":[],"data":[]},      {"columns":["r"],"data":   // I only care this result which has data      [        {"row":[{"id":"4","number":"555-1234"}]},  // actual results        {"row":[{"id":"5","number":"555-1232"}]},        {"row":[{"id":"6","number":"555-1235"}]}      ]    }  ],  "errors":[]}目前我只是讀出整個響應,使用字符串替換修復格式,然后正常解組,但我想知道是否有更好的方法。這是我希望改進的當前實現。// Structures to unmarshal Neo4j transaction results into.type transactionResponse struct {    Results *json.RawMessage   `json:"results"`    Errors  []transactionError `json:"errors"`}// req is my POST to Neo4j resp, err := db.client.Do(req)defer resp.Body.Close()if err != nil {    return fmt.Errorf("Error posting transaction: %s", err)}body, err := ioutil.ReadAll(resp.Body)var txResponse transactionResponseif err = json.Unmarshal(body, &txResponse); err == nil {    json.Unmarshal(formatTransactionResponse(*txResponse.Results), &Phones{});}    
查看完整描述

3 回答

  • 3 回答
  • 0 關注
  • 289 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號