擅长:python、mysql、java
<p><code>json.Marshal</code>不字符串化。它以字节为单位返回json编码。你知道吗</p>
<p>如果需要字符串转换,可以使用以下命令。你知道吗</p>
<pre><code>b, _ := json.Marshal(some_data)
json_str2 := str(b)
</code></pre>
<p>因为<code>json.dumps</code>在字段值之间添加了一个额外的空格,所以可以使用下面的方法向json字符串化文件添加一个额外的空格</p>
<pre><code>str := string(b)
fmt.Println(str)
c := strings.Join(strings.Split(str, ","), ", ")
fmt.Println(c)
</code></pre>
<p>如果存在逗号为<code>","</code>的字符串值,则使用此分隔符可能会失败。你知道吗</p>
<p>为了确保不给包含逗号的字符串添加任何空格,可以使用<a href="https://golang.org/src/encoding/json/encode.go?s=6964:7036#L166" rel="nofollow noreferrer">marshalIndent</a></p>
<pre><code>data, err := json.MarshalIndent(some_data, "", "delimiter")
if err != nil {
panic(err)
}
fmt.Println(string(data))
s := strings.Replace(string(data), "\ndelimiter", " ", -1)
s = strings.Replace(s, "{ ", "{", -1)
s = strings.Replace(s, "\n}", "}", -1)
</code></pre>
<p>Python输出</p>
<pre><code>json_str1 = json.dumps(some_data, sort_keys=True)
{"a": 1, "b": 2}
</code></pre>
<p><a href="https://play.golang.org/p/B-wFAD1thPe" rel="nofollow noreferrer">Go output</a></p>
<pre><code>{"a": 1, "b": 2}
</code></pre>