मेरा वेबसैट सर्वर प्राप्त होगा और अनारक्षित JSON डेटा। यह डेटा हमेशा कुंजी / मान जोड़े के साथ एक ऑब्जेक्ट में लपेटा जाएगा। की-स्ट्रिंग, मान सर्वर के रूप में कार्य करेगा, गो सर्वर को बताएगा कि यह किस प्रकार का मूल्य है। किस प्रकार के मूल्य को जानकर, मैं तब JSON को सही प्रकार की संरचना में अनारक्षित कर सकता हूं।
प्रत्येक जॉन्स-ऑब्जेक्ट में कई कुंजी / मान जोड़े हो सकते हैं।
उदाहरण JSON:
{
"sendMsg":{"user":"ANisus","msg":"Trying to send a message"},
"say":"Hello"
}
क्या ऐसा करने के लिए "encoding/json"
पैकेज का उपयोग करने का कोई आसान तरीका है ?
package main
import (
"encoding/json"
"fmt"
)
// the struct for the value of a "sendMsg"-command
type sendMsg struct {
user string
msg string
}
// The type for the value of a "say"-command
type say string
func main(){
data := []byte(`{"sendMsg":{"user":"ANisus","msg":"Trying to send a message"},"say":"Hello"}`)
// This won't work because json.MapObject([]byte) doesn't exist
objmap, err := json.MapObject(data)
// This is what I wish the objmap to contain
//var objmap = map[string][]byte {
// "sendMsg": []byte(`{"user":"ANisus","msg":"Trying to send a message"}`),
// "say": []byte(`"hello"`),
//}
fmt.Printf("%v", objmap)
}
किसी भी तरह के सुझाव / मदद के लिए धन्यवाद!
RawMessage
। बिल्कुल वही जो मुझे चाहिए था। के बारे मेंsay
, मैं वास्तव में अभी भी इसे चाहता हूंjson.RawMessage
, क्योंकि स्ट्रिंग अभी भी डीकोड नहीं किया गया है (रैपिंग"
और एस्केप\n
-चैकर्स, आदि), इसलिए मैं इसे भी अनमर्ष करूंगा।