go - 去检查JSON是对象还是 array

  显示原文与译文双语对照的内容
127 1

检查给定JSON是否为对象 {} 或者 array [] 有一个简单的方法?

首先要注意到的是 json.Unmarshal(),然后看看它是一个地图,还是一片地图。但这似乎是低效的。

我可以检查第一个字节是 { 还是 [或者是否有更好的方法来实现这个目标。

时间:原作者:0个回答

147 4

使用以下选项可以检测 []bytedata 中的JSON文本是否为 array 或者对象:

//Get slice of data with optional leading whitespace removed.
//See RFC 7159, Section 2 for the definition of JSON whitespace.
 x := bytes.TrimLeft(data," trn")
 isArray := len(x)> 0 && x[0] == '['
 isObject := len(x)> 0 && x[0] == '{'

这段代码处理可选的前导空格,并且比对整个值进行解压缩更有效。

因为JSON中的顶级值也可以是数字。字符串。布尔或者零,所以 isArrayisObject 都可以计算为 false 。当JSON无效时,isArrayisObject的值也可以计算为 false 。

原作者:
...