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

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

在 GoLang 緩沖區變量中搜索特定鍵值

在 GoLang 緩沖區變量中搜索特定鍵值

Go
慕標琳琳 2022-07-11 17:10:19
我有一個變量緩沖區,它將一組鍵值對存儲在表單的數組中:[{"Key":"area1", "Record": {"name":"belfast","type":"surburban","validity":"true"}},{Key,Record},{Key, Record}....]即緩沖區數組中的一組 Key-Record 對。現在我只想檢索具有特定記錄條目的鍵記錄對,例如,我只想要有效值為“true”的記錄,我想返回所有具有有效性字段值的鍵記錄對真的。有什么建議么 ?謝謝這是如何創建鍵記錄對的代碼段,之后我想過濾具有 true 有效性的鍵記錄var buffer bytes.Buffer    buffer.WriteString("[")    bArrayMemberAlreadyWritten := false    for resultsIterator.HasNext() {        queryResponse, err := resultsIterator.Next()        if err != nil {            return shim.Error(err.Error())        }        // Add a comma before array members, suppress it for the first array member        if bArrayMemberAlreadyWritten == true {            buffer.WriteString(",")        }        buffer.WriteString("{\"Key\":")        buffer.WriteString("\"")        buffer.WriteString(queryResponse.Key)        buffer.WriteString("\"")        buffer.WriteString(", \"Record\":")        // Record is a JSON object, so we write as-is        buffer.WriteString(string(queryResponse.Value))        buffer.WriteString("}")        bArrayMemberAlreadyWritten = true    }    buffer.WriteString("]")所以緩沖區數組有鍵記錄對,我想過濾它。
查看完整描述

1 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

如果可以unmarshal將數據放入結構體中,則可以使用以下代碼:


package main


import (

    "encoding/json"

    "fmt"

)


type DataStructure struct {

    Key    string `json:"Key"`

    Record struct {

        Name     string `json:"name"`

        Type     string `json:"type"`

        Validity bool   `json:"validity"`

    } `json:"Record"`

}


var data string = `[{"Key":"area1", "Record": {"name":"belfast","type":"surburban","validity":true}},{"Key":"area1", "Record": {"name":"belfast","type":"surburban","validity":false}}]`


func main() {

    var datastruct []DataStructure


    var result []DataStructure

    if err := json.Unmarshal([]byte(data), &datastruct); err != nil {

        panic(err)

    }

    for _, item := range datastruct {

        if item.Record.Validity {

            result = append(result, item)

        }

    }

    fmt.Println(result)

}

輸入:


[{"Key":"area1", "Record": {"name":"belfast","type":"surburban","validity":true}},{"Key":"area1", "Record": {"name":"belfast","type":"surburban","validity":false}}]

預期結果:


[{Key:area1 Record:{Name:belfast Type:surburban Validity:true}}]


查看完整回答
反對 回復 2022-07-11
  • 1 回答
  • 0 關注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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