日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

php小編魚仔為您介紹JSON數(shù)組作為Go結(jié)構(gòu)的使用方法。在Go語言中,JSON數(shù)組是一種常見的數(shù)據(jù)結(jié)構(gòu),它可以用來表示多個(gè)相同類型的數(shù)據(jù)。通過將JSON數(shù)組映射為Go的結(jié)構(gòu)體,我們可以方便地對(duì)其進(jìn)行操作和處理。本文將詳細(xì)介紹如何使用Go語言中的JSON包來解析和構(gòu)建JSON數(shù)組,并將其轉(zhuǎn)換為相應(yīng)的Go結(jié)構(gòu)體,以實(shí)現(xiàn)數(shù)據(jù)的有效管理和處理。無論您是Go語言初學(xué)者還是有一定經(jīng)驗(yàn)的開發(fā)者,本文都將為您帶來實(shí)用的技巧和方法,幫助您更好地理解和應(yīng)用JSON數(shù)組作為Go結(jié)構(gòu)的相關(guān)知識(shí)。

問題內(nèi)容

我試圖從 json 文件調(diào)用對(duì)象數(shù)組,但總是遇到錯(cuò)誤:“無法將數(shù)組解組為 config.appconfig 類型的 go 值”。
如何確保我的 go 結(jié)構(gòu)如何調(diào)用 json 文件中的對(duì)象數(shù)組?
以下是我設(shè)置 go 結(jié)構(gòu)的配置文件和 json 文件:

config.go

package config

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

type easy struct {
 uid string `json:"uid"`
}

type auth struct {
 code string `json:"code"`
}

type appconfig struct {
 openapimode string `json:"openapimode"` 
 openapiurl  string `json:"openapiurl"`  

 clientid string `json:"clientid"` 
 secret   string `json:"secret"` 

 authmode string `json:"authmode"`

 easy easy `json:"easy"`
 auth auth `json:"auth"`

 deviceid string `json:"deviceid"`

 uid          string `json:"-"` 
 mqttuid      string `json:"-"` 
 accesstoken  string `json:"-"`
 refreshtoken string `json:"-"`
 expiretime   int64  `json:"-"`
}

var app = appconfig{
  openapimode: "mqtt",
  openapiurl:  "openapi.tuyacn.com",
}


func loadconfig() error {
  return parsejson("webrtc.json", &app)
}

func parsejson(path string, v interface{}) error {
  data, err := ioutil.readfile(path)
  if err != nil {
    return err
}

 err = json.unmarshal(data, v)
 return err
}

登錄后復(fù)制

json 文件

[
  {
    "openAPIMode": "mqtt",
    "openAPIUrl": "openapi.tuyaus.com",
    "clientId": "*****",
    "secret": "**************",
    "authMode": "easy",
    "easy": {
      "uId": "**********"
    },
    "auth": {
      "code": ""
    },
    "deviceId": "***********"
  },
  {
    "openAPIMode": "mqtt",
    "openAPIUrl": "openapi.tuyaus.com",
    "clientId": "*****",
    "secret": "**************",
    "authMode": "easy",
    "easy": {
      "uId": "**********"
    },
    "auth": {
      "code": ""
    },
    "deviceId": "***********"
  }
]

登錄后復(fù)制

預(yù)先感謝您的幫助!

解決方法

您的配置 json 文件是一個(gè) json 數(shù)組,您正在將其解析為結(jié)構(gòu),您需要將其解析為結(jié)構(gòu)數(shù)組。

要修復(fù)您的代碼,請(qǐng)將 app 的初始化更改為此。

var app []appconfig

func loadconfig() error {
    return parsejson("webrtc.json", &app)
}

登錄后復(fù)制

這是完整的示例代碼。

package main

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

type Easy struct {
    UID string `json:"uId"`
}

type Auth struct {
    Code string `json:"code"`
}

type APPConfig struct {
    OpenAPIMode string `json:"openAPIMode"`
    OpenAPIURL  string `json:"openAPIUrl"`

    ClientID string `json:"clientId"`
    Secret   string `json:"secret"`

    AuthMode string `json:"authMode"`

    Easy Easy `json:"easy"`
    Auth Auth `json:"auth"`

    DeviceID string `json:"deviceId"`

    UID          string `json:"-"`
    MQTTUID      string `json:"-"`
    AccessToken  string `json:"-"`
    RefreshToken string `json:"-"`
    ExpireTime   int64  `json:"-"`
}

var App []APPConfig

func LoadConfig() error {
    return parseJSON("webrtc.json", &App)
}

func parseJSON(path string, v interface{}) error {
    data, err := ioutil.ReadFile(path)
    if err != nil {
        return err
    }

    err = json.Unmarshal(data, v)
    return err
}

func main() {
    err := LoadConfig()
    if err != nil {
        panic(err)
    }
    fmt.Printf("%+v\n", App)
}

登錄后復(fù)制

分享到:
標(biāo)簽:Go語言 json數(shù)組
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定