/ / जाओ में जेएसओएन वैल्यू प्राप्त करें - जेसन, जाओ

जाओ जेसन मूल्य में जाओ - जेसन, जाओ

सरल सवाल है कि मुझे एक कठिन समय है कि JSON डिकोडिंग के लिए संरचना को कैसे व्यवस्थित किया जाए।

मैं संरचना के किसी भी क्षेत्र को संरचना के किसी अन्य क्षेत्र में कैसे कॉपी कर सकता हूं?

मेरे पास JSON है

{
"Trains": [{
"Car": "6",
"Destination": "SilvrSpg",
"DestinationCode": "B08",
"DestinationName": "Silver Spring",
"Group": "1",
"Line": "RD",
"LocationCode": "A13",
"LocationName": "Twinbrook",
"Min": "1"
}]
}

और मेरे पास structs हैं

type Trains struct {
Min      string `json:"Min"`
DestName string `json:"DestinationName"`
DestCode string `json:"DestinationCode"`
LocName  string `json:"LocationName"`
LocCode  string `json:"LocationCode"`
Line     string `json:"Line"`
}

type AllData struct {
Data []Trains `json:"Trains"`
}

मैं ट्रेनों का मूल्य कैसे प्राप्त कर सकता हूं। स्थानकोड जैसे संरचना में

type AllData struct {
Id Trains[0].LocCode value
Data []Trains `json:"Trains"`
}

तो मुझे मूल रूप से बस इस तरह JSON होना चाहिए

{
"Id":"A13",
"Data": [{
"Car": "6",
"Destination": "SilvrSpg",
"DestinationCode": "B08",
"DestinationName": "Silver Spring",
"Group": "1",
"Line": "RD",
"LocationCode": "A13",
"LocationName": "Twinbrook",
"Min": "1"
}]
}

जहां Id ट्रेन संरचना का आंतरिक मूल्य है।

मैं इसे प्रतिबिंबित करने के लिए एक संरचना कैसे बना सकता हूं?

उत्तर:

जवाब के लिए 0 № 1

JSON डिकोडर में यह क्षमता नहीं है। आपको अपने आवेदन में कोड की रेखा लिखनी होगी।

package main

import (
"encoding/json"
"fmt"
"log"
)

var s = `
{
"Trains": [{
"Car": "6",
"Destination": "SilvrSpg",
"DestinationCode": "B08",
"DestinationName": "Silver Spring",
"Group": "1",
"Line": "RD",
"LocationCode": "A13",
"LocationName": "Twinbrook",
"Min": "1"
}]
}`

type Train struct {
Min      string `json:"Min"`
DestName string `json:"DestinationName"`
DestCode string `json:"DestinationCode"`
LocName  string `json:"LocationName"`
LocCode  string `json:"LocationCode"`
Line     string `json:"Line"`
}

type Data struct {
// The name "-" tells the JSON decoder to ignore this field.
ID     string `json:"-"`
Trains []Train
}

func main() {
var d Data
if err := json.Unmarshal([]byte(s), &d); err != nil {
log.Fatal(err)
}
if len(d.Trains) < 1 {
log.Fatal("No trains")
}
// Copy value from inner to outer.
d.ID = d.Trains[0].LocCode
fmt.Printf("%+vn", &d)
}