2017-02-18 402 views
0
package questionnaire 

import (
    "encoding/json" 
) 

type Items []Item 

type CreateData struct { 
    Items []Item 
} 

type Item struct { 
    Id  enter code herestring `json:"id"  required:"true"` 
    CompCd string `json:"compCd" required:"true"` 
    OrgCd  string `json:"orgCd"` 
    QstnId string `json:"qstnId" required:"true"` 
    QstnIdSeq string `json:"qstnIdSeq" required:"true"` 
    CustId string `json:"custId"` 
    AnsDts string `json:"ansDts" required:"true"` 
    AnsRout string `json:"ansRout" required:"true"` 
    QCd01  string `json:"qCd01"` 
    QKey01 string `json:"qKey01"` 
    QStc01 string `json:"qStc01"` 
    QCat01 string `json:"qCat01"` 
    Pont01 string `json:"pont01"` 
    PCat01 string `json:"pCat01"` 
    Comt01 string `json:"comt01"` 
    QCd02  string `json:"qCd02"` 
    QKey02 string `json:"qKey02"` 
    QStc02 string `json:"qStc02"` 
    QCat02 string `json:"qCat02"` 
    Pont02 string `json:"pont02"` 
    PCat02 string `json:"pCat02"` 
    Comt02 string `json:"comt02"` 
    . 
    . 
    . 
    QCd50  string `json:"qCd50"` 
    QKey50 string `json:"qKey50"` 
    QStc50 string `json:"qStc50"` 
    QCat50 string `json:"qCat50"` 
    Pont50 string `json:"pont50"` 
    PCat50 string `json:"pCat50"` 
    Comt50 string `json:"comt50" 
} 

我是新手。我剛剛學習前幾天去語言.. 我的問題:如何壓縮這個項目結構塊。如果我從QCd01寫入QCd50,此代碼可以運行,但非常糟糕! 對不起,我不擅長英語。如何在Struct Golang中壓縮Json

+2

如果它們都是字符串,爲什麼不使用地圖? – JimB

+0

感謝兄弟,但如果我使用地圖,它會變成什麼? –

+0

myMap:= make(map [string] string)結帳https://blog.golang.org/go-maps-in-action和https://gobyexample.com/maps – reticentroot

回答

0

我在你的評論中複製並粘貼了代碼。它錯過了結束}來完成json字符串。此外,您需要一個結構來將items地圖連接到。這是一個工作場地的鏈接。

編輯:我沒有意識到會有多個「項目」,我應該假設複數名稱。這裏是一個更新的操場鏈接,照顧到這一點。

https://play.golang.org/p/5T2C6KrVOD

+0

謝謝你的回答,但如果我想檢查驗證'json:「id」required:「true」',我該如何檢查它? –

+0

任何需要的東西,你只要手動檢查,如果它存在於地圖中。我用這樣的支票更新了我的操場鏈接。 – RayfenWindspear

+0

我用很多「物品」改變我的地圖。當我使用json.Unmashal(strJson,數據)時,爲什麼數據變成map []。我想循環「項目」鍵,然後json.Mashal(數據)寫入文件。 遊樂場:https://play.golang.org/p/1hglmTXxBZ –