当前位置: 首页 > 面试题库 >

转到:将[] bytes封送给JSON,得到一个奇怪的字符串

解柏
2023-03-14
问题内容

当我尝试将[] byte编组为JSON格式时,我只有一个奇怪的字符串。

请看下面的代码。

我有两个疑问:

如何将[] bytes封送至JSON?

为什么[] byte成为此字符串?

package main

import (
    "encoding/json"
    "fmt"
    "os"
)

func main() {
    type ColorGroup struct {
        ByteSlice    []byte
        SingleByte   byte
        IntSlice     []int
    }
    group := ColorGroup{
        ByteSlice:  []byte{0,0,0,1,2,3},
        SingleByte: 10,
        IntSlice:   []int{0,0,0,1,2,3},
    }
    b, err := json.Marshal(group)
    if err != nil {
        fmt.Println("error:", err)
    }
    os.Stdout.Write(b)
}

输出为:

{"ByteSlice":"AAAAAQID","SingleByte":10,"IntSlice":[0,0,0,1,2,3]}

戈朗游乐场:https :
//play.golang.org/p/wanppBGzNR


问题答案:

根据文档:https :
//golang.org/pkg/encoding/json/#Marshal

数组和切片值编码为JSON数组,除了[] byte编码为base64编码的字符串,而nil slice编码为空JSON对象

该值AAAAAQID是您的字节片的base64表示形式-例如

b, err := base64.StdEncoding.DecodeString("AAAAAQID")
if err != nil {
    log.Fatal(err)
}

fmt.Printf("%v", b)
// Outputs: [0 0 0 1 2 3]


 类似资料:
  • com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段“ID”(类com.optimight.prakash.general.employee)未标记为可忽略(0个已知属性:]),位于[源:(字符串)“{”ID“:1,”名称“:”Lokesh Gupta“,”年龄“:34,”位置“:”印度“}”;行:1,列:

  • 如何将列表从Python正确返回到Ajax,返回时输出看起来很奇怪。 ap.py com_response.html index.html python 中列表的输出: 返回到Ajax的列表输出:

  • 我有以下类型,在架构中定义为: 生成的JAXB类: 使用此类型的一些JAXB类: 当我将此XML解组为JAXB对象时: 这份名单从何而来?info_analytics映射到没有任何集合/数组的类型。 如果我得到这个JSON,umarshall将其转换为JAXB对象,marshall转换为XML,它将生成: 为什么元素作为属性重复? XML:

  • 我正在使用一个groovy脚本将正文中的一些值转换为它们的原始数据类型。为了实现这一点,我使用了JsonSluper和JsonOutput。JsonSluper和JsonOutput正在将字符串中的一些符号从json主体转换为奇怪的字符。有什么建议可以解决这个问题吗? 示例:“UnitPrice”:“99美分/磅”转换为“UnitPrice”::“99\u00a2每磅” 已转换为 我的脚本: 下面

  • 问题内容: 这是代码片段: 输出为: 为什么会这样呢?我认为是,要么,或。 这里发生了什么? 问题答案: 二是算术加法,不是字符串连接。您必须执行或之类的操作,或使用和方法来确保操作符中的至少一个是用于字符串串联的运算符。 [JLS 15.18加法运算符](http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#

  • 问题内容: 我遇到此行的问题(在下面评论): 输出。 但是,输出。 现在,我不明白为什么我得到这个结果: 问题答案: 您缺少一组括号: 在您的版本中,正在通过与进行比较,这不是您想要的。 通常,的优先级高于,这就是为什么将其评估为的原因。