php小編魚仔為您介紹如何為物件新增有效的json字串。在開發過程中,我們經常需要將資料轉換為json格式並傳輸給前端或其他系統。然而,有時我們需要在一個已有的json物件中加入新的數據,這就需要我們對json字串進行解析、操作和拼接。在本文中,我們將介紹一種簡單而有效的方法來實現這個功能,幫助您更好地處理json資料。
我目前有這樣的東西
type info struct { ids []string `json:"ids"` assignment string `json:"assignment"` }
現在我的 assignment
是一個從檔案中讀取的大型硬編碼 json 字串。
我正在做這樣的事情
r := Info{Ids: names, assignment: existingJsonString} body, _ := json.Marshal(r)
但是上面的 body
是不正確的,因為賦值顯示為字串而不是 json 物件。我如何告訴資訊結構 assignment
將是一個 json 字串而不是常規字串,以便 json.marshal
可以很好地使用它?
使用類型json.rawmessage,請注意應導出 assignment
:
type info struct { ids []string `json:"ids"` assignment json.rawmessage `json:"assignment"` }
範例:
package main import ( "encoding/json" "fmt" ) type Info struct { Ids []string `json:"ids"` Assignment json.RawMessage `json:"assignment"` } func main() { r := Info{ Ids: []string{"id1", "id2"}, Assignment: json.RawMessage(`{"a":1,"b":"str"}`), } body, err := json.Marshal(r) if err != nil { panic(err) } fmt.Printf("%s\n", body) }
以上是如何向物件添加有效的 json 字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!