【问题标题】:Getting a value of a specific key [duplicate]获取特定键的值[重复]
【发布时间】:2021-01-08 17:27:33
【问题描述】:

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

[{"Key":"a","Value":"4521"},{"Key":"b","Value":"7"}]

我想获取键 "b" 的值。在 Go 中执行此操作的最佳方法是什么?

【问题讨论】:

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

标签: arrays json go key-value


【解决方案1】:
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
            }
        }
    }
}

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

【讨论】:

  • 奥列格,这很好用。非常感谢
猜你喜欢
  • 2020-01-06
  • 1970-01-01
  • 2017-08-22
  • 2021-05-26
  • 1970-01-01
  • 2021-08-08
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多