JSON: Difference between revisions
(added go) |
|||
Line 2: | Line 2: | ||
Load a [[wp:JSON|JSON]] string into a data structure. Also create a new data structure and serialize it into JSON. |
Load a [[wp:JSON|JSON]] string into a data structure. Also create a new data structure and serialize it into JSON. |
||
Use objects and arrays, and make sure your JSON is valid (http://www.jsonlint.com/). |
Use objects and arrays, and make sure your JSON is valid (http://www.jsonlint.com/). |
||
=={{header|Go}}== |
|||
<lang go>package main |
|||
import "json" |
|||
import "fmt" |
|||
func main() { |
|||
var data map[string]interface{} |
|||
json.Unmarshal([]byte("{ \"foo\": 1, \"bar\": [10, \"apples\"] }"), &data) |
|||
fmt.Println(data) |
|||
sample := map[string]interface{}{ "blue": []interface{}{1,2}, "ocean": "water" } |
|||
json_string, err := json.Marshal(sample) |
|||
if err == nil { |
|||
fmt.Println(string(json_string)) |
|||
} else { |
|||
fmt.Println(err) |
|||
} |
|||
}</lang> |
|||
=={{header|JavaScript}}== |
=={{header|JavaScript}}== |
Revision as of 06:23, 25 August 2010
![Task](http://static.miraheze.org/rosettacodewiki/thumb/b/ba/Rcode-button-task-crushed.png/64px-Rcode-button-task-crushed.png)
You are encouraged to solve this task according to the task description, using any language you may know.
Load a JSON string into a data structure. Also create a new data structure and serialize it into JSON. Use objects and arrays, and make sure your JSON is valid (http://www.jsonlint.com/).
Go
<lang go>package main import "json" import "fmt"
func main() {
var data map[string]interface{} json.Unmarshal([]byte("{ \"foo\": 1, \"bar\": [10, \"apples\"] }"), &data) fmt.Println(data)
sample := map[string]interface{}{ "blue": []interface{}{1,2}, "ocean": "water" } json_string, err := json.Marshal(sample) if err == nil { fmt.Println(string(json_string)) } else { fmt.Println(err) }
}</lang>
JavaScript
Requires JSON library, now present in some browsers. <lang JavaScript>var data = JSON.parse('{ "foo": 1, "bar": [10, "apples"] }');
var sample = { "blue": [1,2], "ocean": "water" }; var json_string = JSON.stringify(sample);</lang>
Of course, it IS called JavaScript Object Notation, so it is a JavaScript object literal, and you can, alternately, parse it by just eval'ing it. This should work in any browser without a library. (Eval may be dangerous, depending on the source of the data.) However, there is an ambiguity with parsing JavaScript object literals by themselves, where it might be mistakenly interpreted as a block, and the key followed by a colon as a label. To avoid this, remember to surround it in parentheses to force it to be interpreted as an expression: <lang javascript>var data = eval('(' + '{ "foo": 1, "bar": [10, "apples"] }' + ')');</lang>
PHP
<lang php><?php $data = json_decode('{ "foo": 1, "bar": [10, "apples"] }'); // dictionaries will be returned as objects $data2 = json_decode('{ "foo": 1, "bar": [10, "apples"] }', true); // dictionaries will be returned as arrays
$sample = array( "blue" => array(1,2), "ocean" => "water" ); $json_string = json_encode($sample); ?></lang>
Python
<lang Python>import json data = json.loads('{ "foo": 1, "bar": [10, "apples"] }')
sample = { "blue": [1,2], "ocean": "water" } json_string = json.dumps(sample)</lang>