解码未知结构的JSON数据

如果要解码一段未知结构的JSON,只需将这段JSON数据解码输出到一个空接口即可。在解码JSON数据的过程中,JSON数据里边的元素类型将做如下转换:1)JSON中的布尔值将会转换为Go中的bool类型;2)数值会被转换为Go中的float64类型;3)字符串转换后还是string类型;4)JSON数组会转换为[]interface{}类型;5)JSON对象会转换为map[st
摘要由CSDN通过智能技术生成

如果要解码一段未知结构的JSON,只需将这段JSON数据解码输出到一个空接口即可。在解码JSON数据的过程中,JSON数据里边的元素类型将做如下转换:

1)JSON中的布尔值将会转换为Go中的bool类型;

2)数值会被转换为Go中的float64类型;

3)字符串转换后还是string类型;

4)JSON数组会转换为[]interface{}类型;

5)JSON对象会转换为map[string]interface{}类型;

6)null值会转换为nil。


在Go的标准库encoding/json包中,允许使用map[string]interface{}和[]interface{}类型的值来分别存放未知结构的JSON对象或数组,示例代码如下:

package main

import (
	"fmt"
	"encoding/json"
)

func main() {
	b := []byte(`{"Title":"Go语言编程","Authors":["XuShiwei","HughLv","Pandaman","GuaguaSong","HanTuo","BertYuan","XuDaoli"],"Publisher":"ituring.com.cn","IsPublished":true,"Price":9.99,"Sales":1000000}`)
	var r interface{}
	err := js
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值