gpt4 book ai didi

json - 检查 JSON 是对象还是数组

转载 作者:IT王子 更新时间:2023-10-29 00:35:29 26 4
gpt4 key购买 nike

Go 中是否有一种简单的方法来检查给定的 JSON 是对象 {} 还是数组 []

首先想到的是json.Unmarshal()成一个接口(interface),然后看看是不是变成了一个map,还是map的slice。但这似乎效率很低。

我可以只检查第一个字节是 { 还是 [ 吗?或者是否有更好的方法已经存在。

最佳答案

使用以下代码检测 []bytedata 中的 JSON 文本是否为数组或对象:

 // Get slice of data with optional leading whitespace removed.
// See RFC 7159, Section 2 for the definition of JSON whitespace.
x := bytes.TrimLeft(data, " \t\r\n")

isArray := len(x) > 0 && x[0] == '['
isObject := len(x) > 0 && x[0] == '{'

这段代码处理可选的前导空格,比解码整个值更有效。

因为 JSON 中的顶级值也可以是数字、字符串、 bool 值或 nil,所以 isArrayisObject 的计算结果可能都是 false。当 JSON 无效时,值 isArrayisObject 也可以评估为 false。

关于json - 检查 JSON 是对象还是数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55014001/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com