Update text and output of json example slightly

This commit is contained in:
Eli Bendersky
2024-12-30 07:03:07 -08:00
parent 795124176c
commit 58894bd0f4
4 changed files with 11 additions and 9 deletions

View File

@@ -123,10 +123,10 @@ func main() {
d := map[string]int{"apple": 5, "lettuce": 7}
enc.Encode(d)
// We can also decode JSON directly from `os.Reader`
// Streaming reads from `os.Reader`s like `os.Stdin`
// or HTTP request bodies is done with `json.Decoder`.
dec := json.NewDecoder(strings.NewReader(str))
res1 := response2{}
dec.Decode(&res1)
fmt.Println(res1)
fmt.Println(res1.Fruits[1])
}

View File

@@ -1,2 +1,2 @@
75a5664321dafe10fa623c187b90f079c5319a3c
jR7IEUPQF8T
db25fb3a8b52215441ebe0a5d6a4d4f1a8be5917
zwf9dZ4pUPW

View File

@@ -13,6 +13,7 @@ a
{1 [apple peach]}
apple
{"apple":5,"lettuce":7}
{1 [apple peach]}
# We've covered the basic of JSON in Go here, but check

11
public/json generated
View File

@@ -46,7 +46,7 @@ data types.</p>
</td>
<td class="code leading">
<a href="https://go.dev/play/p/jR7IEUPQF8T"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
<a href="https://go.dev/play/p/zwf9dZ4pUPW"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
<pre class="chroma"><code><span class="line"><span class="cl"><span class="kn">package</span> <span class="nx">main</span></span></span></code></pre>
</td>
</tr>
@@ -324,7 +324,8 @@ stream JSON encodings directly to <code>os.Writer</code>s like
<tr>
<td class="docs">
<p>We can also decode JSON directly from <code>os.Reader</code></p>
<p>Streaming reads from <code>os.Reader</code>s like <code>os.Stdin</code>
or HTTP request bodies is done with <code>json.Decoder</code>.</p>
</td>
<td class="code">
@@ -333,7 +334,6 @@ stream JSON encodings directly to <code>os.Writer</code>s like
</span></span><span class="line"><span class="cl"> <span class="nx">res1</span> <span class="o">:=</span> <span class="nx">response2</span><span class="p">{}</span>
</span></span><span class="line"><span class="cl"> <span class="nx">dec</span><span class="p">.</span><span class="nf">Decode</span><span class="p">(</span><span class="o">&amp;</span><span class="nx">res1</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">res1</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">res1</span><span class="p">.</span><span class="nx">Fruits</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre>
</td>
</tr>
@@ -362,7 +362,8 @@ stream JSON encodings directly to <code>os.Writer</code>s like
</span></span></span><span class="line"><span class="cl"><span class="go">a
</span></span></span><span class="line"><span class="cl"><span class="go">{1 [apple peach]}
</span></span></span><span class="line"><span class="cl"><span class="go">apple
</span></span></span><span class="line"><span class="cl"><span class="go">{&#34;apple&#34;:5,&#34;lettuce&#34;:7}</span></span></span></code></pre>
</span></span></span><span class="line"><span class="cl"><span class="go">{&#34;apple&#34;:5,&#34;lettuce&#34;:7}
</span></span></span><span class="line"><span class="cl"><span class="go">{1 [apple peach]}</span></span></span></code></pre>
</td>
</tr>
@@ -395,7 +396,7 @@ for more.</p>
</div>
<script>
var codeLines = [];
codeLines.push('');codeLines.push('package main\u000A');codeLines.push('import (\u000A \"encoding/json\"\u000A \"fmt\"\u000A \"os\"\u000A \"strings\"\u000A)\u000A');codeLines.push('type response1 struct {\u000A Page int\u000A Fruits []string\u000A}\u000A');codeLines.push('type response2 struct {\u000A Page int `json:\"page\"`\u000A Fruits []string `json:\"fruits\"`\u000A}\u000A');codeLines.push('func main() {\u000A');codeLines.push(' bolB, _ :\u003D json.Marshal(true)\u000A fmt.Println(string(bolB))\u000A');codeLines.push(' intB, _ :\u003D json.Marshal(1)\u000A fmt.Println(string(intB))\u000A');codeLines.push(' fltB, _ :\u003D json.Marshal(2.34)\u000A fmt.Println(string(fltB))\u000A');codeLines.push(' strB, _ :\u003D json.Marshal(\"gopher\")\u000A fmt.Println(string(strB))\u000A');codeLines.push(' slcD :\u003D []string{\"apple\", \"peach\", \"pear\"}\u000A slcB, _ :\u003D json.Marshal(slcD)\u000A fmt.Println(string(slcB))\u000A');codeLines.push(' mapD :\u003D map[string]int{\"apple\": 5, \"lettuce\": 7}\u000A mapB, _ :\u003D json.Marshal(mapD)\u000A fmt.Println(string(mapB))\u000A');codeLines.push(' res1D :\u003D \u0026response1{\u000A Page: 1,\u000A Fruits: []string{\"apple\", \"peach\", \"pear\"}}\u000A res1B, _ :\u003D json.Marshal(res1D)\u000A fmt.Println(string(res1B))\u000A');codeLines.push(' res2D :\u003D \u0026response2{\u000A Page: 1,\u000A Fruits: []string{\"apple\", \"peach\", \"pear\"}}\u000A res2B, _ :\u003D json.Marshal(res2D)\u000A fmt.Println(string(res2B))\u000A');codeLines.push(' byt :\u003D []byte(`{\"num\":6.13,\"strs\":[\"a\",\"b\"]}`)\u000A');codeLines.push(' var dat map[string]interface{}\u000A');codeLines.push(' if err :\u003D json.Unmarshal(byt, \u0026dat); err !\u003D nil {\u000A panic(err)\u000A }\u000A fmt.Println(dat)\u000A');codeLines.push(' num :\u003D dat[\"num\"].(float64)\u000A fmt.Println(num)\u000A');codeLines.push(' strs :\u003D dat[\"strs\"].([]interface{})\u000A str1 :\u003D strs[0].(string)\u000A fmt.Println(str1)\u000A');codeLines.push(' str :\u003D `{\"page\": 1, \"fruits\": [\"apple\", \"peach\"]}`\u000A res :\u003D response2{}\u000A json.Unmarshal([]byte(str), \u0026res)\u000A fmt.Println(res)\u000A fmt.Println(res.Fruits[0])\u000A');codeLines.push(' enc :\u003D json.NewEncoder(os.Stdout)\u000A d :\u003D map[string]int{\"apple\": 5, \"lettuce\": 7}\u000A enc.Encode(d)\u000A');codeLines.push(' dec :\u003D json.NewDecoder(strings.NewReader(str))\u000A res1 :\u003D response2{}\u000A dec.Decode(\u0026res1)\u000A fmt.Println(res1)\u000A fmt.Println(res1.Fruits[1])\u000A}\u000A');codeLines.push('');codeLines.push('');
codeLines.push('');codeLines.push('package main\u000A');codeLines.push('import (\u000A \"encoding/json\"\u000A \"fmt\"\u000A \"os\"\u000A \"strings\"\u000A)\u000A');codeLines.push('type response1 struct {\u000A Page int\u000A Fruits []string\u000A}\u000A');codeLines.push('type response2 struct {\u000A Page int `json:\"page\"`\u000A Fruits []string `json:\"fruits\"`\u000A}\u000A');codeLines.push('func main() {\u000A');codeLines.push(' bolB, _ :\u003D json.Marshal(true)\u000A fmt.Println(string(bolB))\u000A');codeLines.push(' intB, _ :\u003D json.Marshal(1)\u000A fmt.Println(string(intB))\u000A');codeLines.push(' fltB, _ :\u003D json.Marshal(2.34)\u000A fmt.Println(string(fltB))\u000A');codeLines.push(' strB, _ :\u003D json.Marshal(\"gopher\")\u000A fmt.Println(string(strB))\u000A');codeLines.push(' slcD :\u003D []string{\"apple\", \"peach\", \"pear\"}\u000A slcB, _ :\u003D json.Marshal(slcD)\u000A fmt.Println(string(slcB))\u000A');codeLines.push(' mapD :\u003D map[string]int{\"apple\": 5, \"lettuce\": 7}\u000A mapB, _ :\u003D json.Marshal(mapD)\u000A fmt.Println(string(mapB))\u000A');codeLines.push(' res1D :\u003D \u0026response1{\u000A Page: 1,\u000A Fruits: []string{\"apple\", \"peach\", \"pear\"}}\u000A res1B, _ :\u003D json.Marshal(res1D)\u000A fmt.Println(string(res1B))\u000A');codeLines.push(' res2D :\u003D \u0026response2{\u000A Page: 1,\u000A Fruits: []string{\"apple\", \"peach\", \"pear\"}}\u000A res2B, _ :\u003D json.Marshal(res2D)\u000A fmt.Println(string(res2B))\u000A');codeLines.push(' byt :\u003D []byte(`{\"num\":6.13,\"strs\":[\"a\",\"b\"]}`)\u000A');codeLines.push(' var dat map[string]interface{}\u000A');codeLines.push(' if err :\u003D json.Unmarshal(byt, \u0026dat); err !\u003D nil {\u000A panic(err)\u000A }\u000A fmt.Println(dat)\u000A');codeLines.push(' num :\u003D dat[\"num\"].(float64)\u000A fmt.Println(num)\u000A');codeLines.push(' strs :\u003D dat[\"strs\"].([]interface{})\u000A str1 :\u003D strs[0].(string)\u000A fmt.Println(str1)\u000A');codeLines.push(' str :\u003D `{\"page\": 1, \"fruits\": [\"apple\", \"peach\"]}`\u000A res :\u003D response2{}\u000A json.Unmarshal([]byte(str), \u0026res)\u000A fmt.Println(res)\u000A fmt.Println(res.Fruits[0])\u000A');codeLines.push(' enc :\u003D json.NewEncoder(os.Stdout)\u000A d :\u003D map[string]int{\"apple\": 5, \"lettuce\": 7}\u000A enc.Encode(d)\u000A');codeLines.push(' dec :\u003D json.NewDecoder(strings.NewReader(str))\u000A res1 :\u003D response2{}\u000A dec.Decode(\u0026res1)\u000A fmt.Println(res1)\u000A}\u000A');codeLines.push('');codeLines.push('');
</script>
<script src="site.js" async></script>
</body>