1. 首页
  2. 主题
  3. Go问与答

go语言文件写入内容问题

EddieChan1993 · · 1645 次点击
### ``app.json``文件原始内容 ``` [ { "model": "开发模式", "version": "1.0", "date_now": "2018年08月24日 18:22:46", "branch": "master", "commit_id": "178d92c", "is_used": false, "is_status": true } ] ``` ### 目标是:更新app.json文件中的``is_used``字段,然后覆盖原始内容 ``` switchStart(av) data, err := json.MarshalIndent(av, "", " ") if err != nil { log.Fatalln(err) } jsonWrite(file, data) ``` #### ``switchStart(av)``后 ##### av变量是结构体,输出如下: ``[{开发模式 1.0 2018年08月24日 18:22:46 master 178d92c true true}]`` ##### data输出如下: ``` [ { "model": "开发模式", "version": "1.0", "date_now": "2018年08月24日 18:22:46", "branch": "master", "commit_id": "178d92c", "is_used": true, "is_status": true } ] ``` #### 所用函数 ``` //写入json文件 func jsonWrite(fp *os.File, data []byte) { _, err := fp.Write(data) if err != nil { log.Fatal(err) } } //修改运行版本状态 func switchStart(appV []AppVersion) { count := len(appV) for i := 0; i < count; i++ { if appV[i].IsStatus == true { appV[i].IsUsed = true } else { appV[i].IsUsed = false } } } ``` ### ``app.json``文件却是这样,多了一个**]**符号: ``` [ { "model": "开发模式", "version": "1.0", "date_now": "2018年08月24日 18:22:46", "branch": "master", "commit_id": "178d92c", "is_used": true, "is_status": true } ]] ``` ### 我很纳闷,希望大家帮我看下,问题所在!谢谢大家
你用什么方法输出data的?如果是fmt ```golang fmt.Println(string(data)) ``` 结果应该是 ```golang { &#34;model&#34;: &#34;开发模式&#34;, &#34;version&#34;: &#34;1.0&#34;, &#34;date_now&#34;: &#34;2018年08月24日 18:22:46&#34;, &#34;branch&#34;: &#34;master&#34;, &#34;commit_id&#34;: &#34;178d92c&#34;, &#34;is_used&#34;: true, &#34;is_status&#34;: true } ``` 没`[]`的。
#1
更多评论
我的data是一个结构体切片
#2
https://studygolang.com/resources/15175#reply0 里面视频第五天有关于JSON的数据格式化,可以参考一下
#3

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中