Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 获取特定键的值_Arrays_Json_Go_Key Value - Fatal编程技术网

Arrays 获取特定键的值

Arrays 获取特定键的值,arrays,json,go,key-value,Arrays,Json,Go,Key Value,我正在从数据库中获取这样的字符串 [{“键”:“a”,“值”:“4521”},{“键”:“b”,“值”:“7”}] 我想得到键“b”的值。在围棋中实现这一点的最佳方式是什么 package main import ( "encoding/json" "fmt" "log" ) func main() { str := `[{"Key":"a","Val

我正在从数据库中获取这样的字符串

[{“键”:“a”,“值”:“4521”},{“键”:“b”,“值”:“7”}]

我想得到键“b”的值。在围棋中实现这一点的最佳方式是什么

package main

import (
    "encoding/json"
    "fmt"
    "log"
)

func main() {
    str := `[{"Key":"a","Value":"4521"},{"Key":"b","Value":"7"}]`

    // declaring out struct we will use for unmarshaling and iteration check.
    out := []struct {
        Key, Value string
    }{}

    if err := json.Unmarshal([]byte(str), &out); err != nil {
        log.Fatal(err)
    } else {
        // searching for value.
        for i := range out {
            if out[i].Key == "b" {
                fmt.Println("Found", out[i].Value)
                return
            }
        }
    }
}

这是一种简单的方法,而不是最佳方法。您可以逐个字节手动解析字符串。

到目前为止您尝试了什么?您只是想将该字符串解析为JSON吗?如果没有,你能发布你是如何访问数据库的吗?@kingkupps我只是想解析字符串并访问键“b”的值@Hash934这看起来像一个json字符串,你确定所有你要检查的字符串都有完全相同的格式吗?是的@OlegButuzov。都是同一种格式,这个很好用。谢谢