json - 如何在 golang 中替换/更新 json 数组中的键值?

标签 json go range

我有一个 json 数组,其中包含一些标志作为键,我已将这些键的默认值设置为 false。这是我的 json 数组。

var flags = map[string]bool{
    "terminationFlag":  false,
    "transferFlag":   false,
    "jrCancelledFlag": false,
    "jrFilledFlag":  false,
}

在 for 循环中执行操作时,我必须将上述 json 数组中的 1 个字段更新为 true。在下一次迭代期间,它必须将 json 数组中的第二个字段更新为 true。 json数组中的所有字段都设置为true后,我要返回json数组。

我试过的代码:

  Keystrings := []string{"terminationReport - 2019-1","transferReport - 2019-1","jrCancelledReport - 2019-1","jrFilledReport - 2019-1"}
  fmt.Println("Keystrings ", Keystrings)

  for i,value := range Keystrings {     
    bytesread, err = stub.GetState(value)
    var result []string
    _ = json.Unmarshal(bytesread, &result)
    fmt.Println("result ", result)
    if result[0] == "yes"{
        fmt.Println("result in if ", result)
       flags[i] = true
    }
}

最佳答案

由于很难从问题中理解所问的内容,下面是一个使用与问题类似的数据的简单尝试,希望您可以从该示例中提取正确的部分并根据您的问题进行调整。按照代码中的注释了解发生了什么。

package main

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

var jsonBlob = []byte(`["jrCancelledFlag", "yes"]`)

var flags = map[string]bool{
    "terminationFlag": false,
    "transferFlag":    false,
    "jrCancelledFlag": false,
    "jrFilledFlag":    false,
}

func main() {
    // Parse jsonBlob into a slice of strings
    var parsed []string
    if err := json.Unmarshal(jsonBlob, &parsed); err != nil {
        log.Fatalf("JSON unmarshal: %s", err)
    }

    // Expect the slice to be of length 2, first item flag name, second item
    // yes/no.
    if len(parsed) != 2 {
        log.Fatalf("parsed len %d, expected 2", len(parsed))
    }

    // Assume parsed[0] actually appears in flags... otherwise more error checking
    // is needed.
    if parsed[1] == "yes" {
        flags[parsed[0]] = true
    }

    // Emit updated flags as json
    json, err := json.Marshal(flags)
    if err != nil {
        log.Fatalf("JSON marshal: %s", err)
    }
    fmt.Println(string(json))
}

关于json - 如何在 golang 中替换/更新 json 数组中的键值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54290985/

相关文章:

c# - 在 ASP.NET 布局中呈现 JSON 字符串

go - 在golang中的 map 中使用指针

Go 模块替换命令不起作用

javascript - 在 HTML 文档中包含 JS 和 CSS?

Swift - `范围最小 - 最大范围内的数字

sql - 确定一个范围是否完全被一组范​​围覆盖

php 脚本显示奇怪的结果

javascript - 使用 javascript 从 json 获取字段和值

javascript - 使用 AJAX 请求替换内部 .JSON 时代码行为发生变化

c - 缺少号码