Я пытаюсь отформатировать мой json определенным образом, чтобы быть вставленным в базу данных. Я могу развязать json и сопоставить его с структурой просто отлично, но мне нужно иметь возможность добавлять и удалять атрибуты для массива компаний, которые мне нужны. Как я могу получить его для получения конечного результата, указанного в приведенном ниже коде?Unmarshalling JSON в пользовательский формат в Go
package main
import (
"encoding/json"
"fmt"
)
type InterestedParties struct {
Companies []Company `json:"companies"`
CCID string `json:"eventCCID"`
}
type Company struct {
CompanyID string `json:"companyID"`
CompanyType string `json:"companyType"`
WebAPI string `json:"webAPI"`
}
type Entitlement struct {
Long string
Voteable string
Tabulation string
Confirm string
}
func main() {
intPartiesJSON := `{"companies": [{"companyID":"COMP0001","companyType":"1","webAPI":"http://google.com"}, {"companyID":"COMP0002","companyType":"1","webAPI":"http://google.com"}],"eventCCID":"laksjlijivelnsvnklsnvlsv"}`
var intParties InterestedParties
err := json.Unmarshal([]byte(intPartiesJSON), &intParties)
if err != nil {
fmt.Println("Error while unmarshalling")
return
}
fmt.Println(intParties)
b, _ := json.Marshal(intParties)
fmt.Println(string(b))
**EDIT:**
//This is how I want the marshalled data to look
//endResult := `[{"companyID": "COMP001", "entitlements":{"long":"","voteable":"", "tabulation":"","confirm":""}, "effective_date": "2017-01-01"},{"companyID": "COMP002", "entitlements":{"long":"","voteable":"", "tabulation":"","confirm":""}, "effective_date": "2017-01-01"}]`
Ваш '' intPartiesJSON, кажется, 'entitlements' и' 'Effective_Date поля отсутствует –
Да, это правильно. Он не будет иметь эти поля в запросе. – JMO