亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Golang > 正文

golang如何修改json文件內容的方法示例

2020-04-01 18:52:53
字體:
來源:轉載
供稿:網友

使用一個例子說明golang如何訪問和修改json文件;主要分三步:

  1. 從文件讀入json串
  2. 把json串轉變成golang對象
  3. 遍歷或者修改json值
  4. 寫回文件

假定用戶輸入json串為:

{ "user": {  "mspid": "admin",  "email": "admin@domain.com" },  "nodes": [  {     "name": "node1",   "location": "node1.domain.com:8080"  },   {     "name": "node2",   "location": "node2.domain.com:8080"  }   ]}

我們的目標是把node1和node2的location域換掉。

代碼如下

import (  "fmt"  "io/ioutil"  "encoding/json")func HandleJson(jsonFile string, outFile string) error {  // Read json buffer from jsonFile  byteValue, err := ioutil.ReadFile(jsonFile)  if err != nil {    return err  }  // We have known the outer json object is a map, so we define result as map.  // otherwise, result could be defined as slice if outer is an array  var result map[string]interface{}  err = json.Unmarshal(byteValue, &result)  if err != nil {    return err  }  // handle peers  nodes:= result["nodes"].([]interface{})  for _, node:= range node{    m := node.(map[string]interface{})    if name, exists := m["name"]; exists {      if name == "node1" {        m["location"] = "new-value1"      } else if name == "node2" {        m["location"] = "new-value2"      }    }  }  // Convert golang object back to byte  byteValue, err = json.Marshal(result)  if err != nil {    return err  }  // Write back to file  err = ioutil.WriteFile(outFile, byteValue, 0644)  return err}

這個地方主要用的是golang的interface{}數據類型,然后把interface{}轉換成真正的數據類型。

這個函數可以擴充成動態的解析任何類型,只要把所有的類型全部定義成interface{},然后使用動態類型檢測就可以知道每一個具體元素的類型了,最終達到類型jq的功能,訪問和修改json文件。

var x interface{} = ...switch x.(type) {  case nil:    fmt.Println("x is nil")  case int:     fmt.Println("x is int")  case bool :    fmt.Println("x is bool")  case string:    fmt.Println("x is string")  case []interface{}:    fmt.Println("x is slice")  case map[string]interface{}:    fmt.Println("x is map")  default:    fmt.Println("type unknown")  }  }

PS:據說json-iteator 是目前golang中對json格式數據處理最快的包(比官方json包快6倍),好像是滴滴團隊開源的,使用起來也非常方便,有興趣的可以學習學習,下面我們看看官方的示例代碼,使用起來也是很方便

package mainimport "github.com/json-iterator/go"type User struct {  Name string  Age int8}func main() {  user := User{      Name: "tanggu",      Age: 18,    }    var jsoniter = jsoniter.ConfigCompatibleWithStandardLibrary    // 序列化    data, err := jsoniter.Marshal(&user)    if err != nil {      log.Fatal(err)    }    fmt.Println(string(data))    // 反序列化    var people User    err = jsoniter.Unmarshal(data, &people)    if err != nil {      log.Fatal(err)    }    fmt.Println(people)}

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久网址| 久久久女女女女999久久| 成人情趣片在线观看免费| 久久精品久久久久久国产 免费| 亚洲第一偷拍网| 欧美日韩国产在线播放| 国产在线视频2019最新视频| 日韩动漫免费观看电视剧高清| 国产精品第一视频| 精品美女久久久久久免费| 精品久久在线播放| 日本欧美在线视频| 最近2019中文字幕mv免费看| 亚洲香蕉成人av网站在线观看| 亚洲欧洲第一视频| 97精品一区二区视频在线观看| 在线亚洲男人天堂| 亚洲精品短视频| 亚洲偷熟乱区亚洲香蕉av| 国产精品视频成人| 日韩在线不卡视频| 国产精品美女999| 日本欧美国产在线| 亚洲国内高清视频| 亚洲激情国产精品| 国产精品久久久久久久电影| 国内精品一区二区三区| 一区二区在线视频播放| 日韩在线小视频| 国产精品久久久久久久av电影| 精品日韩美女的视频高清| 97精品国产91久久久久久| 亚洲性69xxxbbb| 91精品国产高清久久久久久| 日韩成人在线电影网| 欧美老女人性生活| 欧美在线视频网站| 97视频在线播放| 亚洲**2019国产| 欧美精品久久一区二区| 亚洲精品国产精品乱码不99按摩| 尤物99国产成人精品视频| 亲爱的老师9免费观看全集电视剧| 精品成人乱色一区二区| 91精品国产自产在线| 91久久精品在线| 国产成人精品在线播放| 日本高清不卡的在线| 国内精品美女av在线播放| 国产在线精品播放| 亚洲xxxx3d| 欧美日韩一区二区三区在线免费观看| 久久激情五月丁香伊人| 尤物九九久久国产精品的特点| 91精品国产综合久久男男| 久久久久久综合网天天| 欧美伊久线香蕉线新在线| 欧美日韩在线一区| 91亚洲国产成人久久精品网站| 亚洲精品xxx| 在线日韩日本国产亚洲| 国产精品国产三级国产专播精品人| 日韩精品免费一线在线观看| 在线观看视频亚洲| 91丝袜美腿美女视频网站| 国产亚洲精品一区二区| 国产视频精品一区二区三区| 北条麻妃一区二区三区中文字幕| 日韩在线一区二区三区免费视频| 欧美日韩免费看| 国产精品第1页| 欧美日韩精品二区| 最近2019年手机中文字幕| 国产噜噜噜噜噜久久久久久久久| 成人福利免费观看| 亚洲色图美腿丝袜| 亚洲综合自拍一区| 色悠悠久久久久| 视频在线观看99| 久久精品国产欧美亚洲人人爽| 国产精品久久久久久影视| 亚洲伊人一本大道中文字幕| 亚洲免费视频观看| 91chinesevideo永久地址| 亚洲午夜久久久久久久| 色综合视频一区中文字幕| 大伊人狠狠躁夜夜躁av一区| 国产日韩欧美视频在线| 一本一本久久a久久精品牛牛影视| 久久国产精品影视| 亚洲精品日韩激情在线电影| 亚洲欧洲国产伦综合| 成人国产亚洲精品a区天堂华泰| 91久久精品视频| 欧美激情免费视频| 欧美大片在线影院| 亚洲网站在线观看| 日韩av一区在线观看| 欧美日韩性视频| 亚洲天堂一区二区三区| 成人国产亚洲精品a区天堂华泰| 欧美在线免费看| 亚洲精品资源美女情侣酒店| 成人h猎奇视频网站| 国产69久久精品成人看| 久久久久国产精品免费| 国产精品久久视频| 欧美中在线观看| 精品视频在线播放| 91在线网站视频| 国产精品午夜国产小视频| 亚洲精品第一页| 欧美成人国产va精品日本一级| 一区二区三区黄色| 精品视频—区二区三区免费| 亚洲国产天堂网精品网站| 国产精品xxx视频| 日韩在线观看免费av| 欧美性猛交xxx| 国产999在线观看| 91国产中文字幕| 久久国产加勒比精品无码| 91精品国产综合久久久久久久久| 久久成人一区二区| 一区二区亚洲欧洲国产日韩| 亚洲激情自拍图| 欧美精品福利在线| 欧美有码在线观看| 伊人久久免费视频| 国产欧美一区二区三区在线看| 亚洲最大的成人网| 国产国语videosex另类| 国产精品一区二区久久国产| 国产女人精品视频| 国产婷婷色综合av蜜臀av| 中文字幕精品一区久久久久| 一道本无吗dⅴd在线播放一区| 欧美老女人性视频| 欧美成年人视频| 成人亲热视频网站| 久久久www成人免费精品| 亚洲3p在线观看| 国产在线久久久| 亚洲精品免费在线视频| 在线观看欧美成人| 7777免费精品视频| 国产精品v日韩精品| 日韩在线观看你懂的| 国产精品最新在线观看| 欧美成人免费一级人片100| 国产综合在线视频| 欧美麻豆久久久久久中文| 日韩在线视频线视频免费网站| 欧美日韩综合视频网址| 精品久久久久久中文字幕大豆网| 欧美视频国产精品| 91国在线精品国内播放| 国产精品亚洲精品| 亚洲一区二区三区乱码aⅴ蜜桃女| 精品福利在线观看| 亚洲视频电影图片偷拍一区| 日韩成人在线播放| 久久久精品日本| 午夜精品在线视频|