golang 解码未知键的 json 字符串

golang 解码未知键的 json 字符串,第1张

概述我们可以使用 interface 接收 json.Unmarshal 的结果,然后利用 type assertion 特性来进行后续 *** 作。   package mainimport ( "encoding/json" "fmt")func main() { b := []byte(`{"Name":"Wednesday","Age":6,"Parents":["Gomez","Mo

我们可以使用 interface 接收 Json.Unmarshal 的结果,然后利用 type assertion 特性来进行后续 *** 作。

 

package mainimport (	"enCoding/Json"	"fmt")func main() {	b := []byte(`{"name":"Wednesday","Age":6,"Parents":["Gomez","Morticia"]}`)	var f interface{}	Json.Unmarshal(b,&f)	m := f.(map[string]interface{})	fmt.Println(m["Parents"])  // 读取 Json 内容 	fmt.Println(m["a"] == nil) // 判断键是否存在}

  

这个 type assertion 的作用是类似于 java 中的 Object 对象转换成某种具体的对象,好比如下面的例子:

import java.util.ArrayList;public class Main {    public static voID main(String[] args) {        ArrayList arrayList = new ArrayList<Integer>();        ArrayList arrayList1 =  (ArrayList) (new Test<>()).test(arrayList);        arrayList1.add(1);        System.out.println(arrayList1);    }}class Test<T> {    public T test(T t) {        return t;    }}

  上面的  ArrayList arrayList1 = (ArrayList) (new Test<>()).test(arrayList);  这一行,我们明确的知道函数返回值是 ArrayList 类型,所以我们可以加上 (ArrayList) 进行类型转换。

而 golang 中只是写法不一样而已,golang 的写法是 v.(xxx),作用是把 interface{} 类型的变量当作 xxx 类型使用。

总结

以上是内存溢出为你收集整理的golang 解码未知键的 json 字符串全部内容,希望文章能够帮你解决golang 解码未知键的 json 字符串所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1270477.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存