首页 > 解决方案 > 如何在golang中将从result(var)中获得的数据注入result1(var)

问题描述

  1. terraform.tfstate 是输入文件,packageservicelist.tf.json 是输出文件。
  2. 两者都转换为地图文件
  3. 我遍历的数据存储在结果中,我想将数据从结果复制到结果1。
  4. Will Write 操作在这里有效。如果是 。如何 ?
package main

import (  
    "fmt"
    "io/ioutil"
    "encoding/json"
)

func main() {  
    //File Reading terraform.tfstate

    data, err := ioutil.ReadFile("terraform.tfstate")
    if err != nil {
        //fmt.Println("File reading error", err)
        return
    }
// Map is save in m
    m := make(map[string]interface{})
    json.Unmarshal(data, &m)
   result:= m["resources"].([]interface{})[0].(map[string]interface{})["instances"].([]interface{})[0].(map[string]interface{})["attributes"].(map[string]interface{})["packaged_service_list"].([]interface{})[0].(map[string]interface{})["package_service"]
   fmt.Println(result)

//File Reading packageservicelist.tf.json

    data1, err :=ioutil.ReadFile("./linear/packageservicelist.tf.json")
    if err != nil {
        fmt.Println("File reading error", err)
        return
    }

    m1 := make(map[string]interface{})
    json.Unmarshal(data1, &m1)
    fmt.Println("\n")
    result1:= m1["resource"].(map[string]interface{})["api_packageservicelist"].(map[string]interface{})["packageservicelist"].(map[string]interface{})["packaged_service_list"].(map[string]interface{})["package_service"]
    fmt.Println(result1)







}

标签: jsongogo-map

解决方案


两者都result具有来自不同来源result1的密钥的价值。package_service你想把result而不是result1. 他们,你必须写到那个键:

m1["resource"].(map[string]interface{})["api_packageservicelist"].(map[string]interface{})["packageservicelist"].(map[string]interface{})["packaged_service_list"].(map[string]interface{})["package_service"]=result

然后,当您写入时,将写入第一个文件中m1的内容。package_service


推荐阅读