2021-07-19 json新奇用法
Posted 程序彤
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021-07-19 json新奇用法相关的知识,希望对你有一定的参考价值。
json的高阶使用1:定义两个类(Person/Worker),定义一个现写好的json字符串,通过json某个方法(json.RawMessage/Unmarshal()),利用好switch-case,根据一个字段类型(1/2),去解析下面一个字段。
go代码如下:
package main
import (
"encoding/json"
"fmt"
)
func main() {
// 将json字符串反序列化成 结构体对象
input := `
{
"Type":2,
"Body":{
"Name" : "lwt",
"Job" : "码农"
}
}
`
struct1 := TestStruct{}
if err := json.Unmarshal([]byte(input), &struct1); err != nil {
panic(err)
}
switch struct1.Type {
case 1:
var person Person
if err := json.Unmarshal(struct1.Body, &person); err != nil {
panic(err)
}
fmt.Println(person)
case 2:
var worker Worker
if err := json.Unmarshal(struct1.Body, &worker); err != nil {
panic(err)
}
fmt.Println(worker)
}
}
// TestStruct 结构体 .
type TestStruct struct {
Type int
Body json.RawMessage
}
// Person 结构体 .
type Person struct {
Name string
Age int
}
// Worker 结构体
type Worker struct {
Name string
Job string
}
以上是关于2021-07-19 json新奇用法的主要内容,如果未能解决你的问题,请参考以下文章
json 可视代码工作室Angular with Firebase片段
错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”