| commit | df4f5c81cb3b310899c091852a576ea7d178aedb | [log] [tgz] |
|---|---|---|
| author | Kirill Motkov <motkov.kirill@gmail.com> | Fri Aug 09 15:32:07 2019 +0300 |
| committer | Johan Dorland <johand@a-eskwadraat.nl> | Fri Aug 09 14:39:43 2019 +0200 |
| tree | 4e4df9205c698683d8af7b7cc559877b83bdf273 | |
| parent | 4e3ac2762d5f479393488629ee9370b50873b3a6 [diff] |
go fmt project
An implementation of JSON Pointer - Go language
jsonText := `{
"name": "Bobby B",
"occupation": {
"title" : "King",
"years" : 15,
"heir" : "Joffrey B"
}
}`
var jsonDocument map[string]interface{}
json.Unmarshal([]byte(jsonText), &jsonDocument)
//create a JSON pointer
pointerString := "/occupation/title"
pointer, _ := NewJsonPointer(pointerString)
//SET a new value for the "title" in the document
pointer.Set(jsonDocument, "Supreme Leader of Westeros")
//GET the new "title" from the document
title, _, _ := pointer.Get(jsonDocument)
fmt.Println(title) //outputs "Supreme Leader of Westeros"
//DELETE the "heir" from the document
deletePointer := NewJsonPointer("/occupation/heir")
deletePointer.Delete(jsonDocument)
b, _ := json.Marshal(jsonDocument)
fmt.Println(string(b))
//outputs `{"name":"Bobby B","occupation":{"title":"Supreme Leader of Westeros","years":15}}`
http://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-07
The 4.Evaluation part of the previous reference, starting with ‘If the currently referenced value is a JSON array, the reference token MUST contain either...’ is not implemented.