返回空列表而不是 null

2024-02-10

我想更改当前函数以返回空 JSON 列表,当前它返回nil.

这是我当前的代码:

func (s *Service) projectsGet(c *gin.Context) {
    var projects []*models.Project

    user := getUser(c)
    pag := models.NewPagination(c)

    ps, err := s.db.ProjectsGet(user.ID, &pag)
    if err != nil {
        apiError(c, http.StatusInternalServerError, err)
        return
    }

    projects = ps
    c.JSON(http.StatusOK, projects)
}

我想让它回来[],我该怎么办呢?


A nil切片编码为nullJSON 对象。这记录在json.Marshal() https://golang.org/pkg/encoding/json/#Marshal:

数组和切片值编码为 JSON 数组,但 []byte 编码为 base64 编码的字符串,并且nil 切片编码为 null JSON 值.

如果你想要一个非null空 JSON 数组,使用非nil空的 Go 切片。

看这个例子:

type Project struct {
    Name string `json:"name"`
}

enc := json.NewEncoder(os.Stdout)

var ps []*Project
enc.Encode(ps)

ps = []*Project{}
enc.Encode(ps)

输出(尝试一下去游乐场 https://play.golang.org/p/4j26-eNEujb):

null
[]

所以在你的情况下请确保projects is not nil, 例如:

projects = ps
if projects == nil {
    projects = []*models.Project{}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

返回空列表而不是 null 的相关文章

  • Angular 4 显示其中的数据

    我不喜欢从 API 返回到我的 Angular 4 应用程序的数据 这是 JSON 的示例 我不关心美元 但这是我正在处理的数据类型 最终目标是在页面上展示 Coin Price BTC 4 281 28 ETH 294 62 etc JS
  • 为什么我不能将左大括号放在下一行?

    当我尝试编译以下代码时遇到奇怪的错误 package main import fmt fmt func main var arr 3 int for i 0 i lt 3 i fmt Printf d arr i 错误如下 unexpect
  • numpy:高效执行数组的复杂重塑

    我正在将供应商提供的大型二进制数组读入 2D numpy 数组 tempfid M N load data data numpy fromfile file dirname fid dtype numpy dtype i4 convert
  • JSONP 使用 JQuery 从 HTTPS 协议获取 JSON

    我正在尝试获取从 https 安全站点发送的 JSON 客户端希望不要使用任何服务器端语言 全部都是 Javascript 我读到 当使用 Jquery 中的 ajax 函数时 我必须使用 JSONP 才能从安全站点加载 JSON 我的第一
  • 从 JSON 文件注入的编译指令 AngularJS

    希望有人能帮助我应对这一挑战 我使用以下命令从服务器请求 JSON 数据 http get 来自服务器的数据返回一个对象 对象中的一个值包含 HTML 标记 该标记使用以下方式注入到页面中 div div 在标记内 有一个名为的自定义指令
  • IE9 JSON 数据“您要打开还是保存此文件”

    开始使用 IE9 测试我的 jQuery 应用程序 看来我在这里可能遇到麻烦了 我注意到 当我将 JSON 数据返回到 Javascript 方法时 我总是收到此提示 您想打开或保存此文件吗 并为我提供了 3 个按钮 打开 保存和取消 当然
  • 使用 javax/json,如何将元素添加到现有的 JsonArray 中?

    我从文件中读取了一个 JSON 数组 但我想向该数组中添加其他条目 我将如何使用 javax json 库来做到这一点 private String getJson FileInputStream fis throws IOExceptio
  • GOMAXPROCS 默认值是多少?

    不设置同名环境变量时是否保证GOMAXPROCS设置为1 此代码显示的值 package main import runtime fmt func getGOMAXPROCS int return runtime GOMAXPROCS 0
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • 无法在 JavaScript for 循环中读取 null 的属性“长度”

    我正在尝试制作一个像 Stack Overflow 那样的 Markdown 编辑器 如果我实际上没有在文本区域中键入星号和包含短语的 http 我会收到标题中列出的此错误 如果我只输入包含星号的短语 则错误指的是这一行 if linkif
  • 处理 fanart.tv Web 服务响应 JSON 和 C#

    我正在尝试使用 fanart tv Webservice API 但有几个问题 我正在使用 Json Net Newtonsoft Json 并通过其他 Web 服务将 JSON 响应直接反序列化为 C 对象 这里的问题是元素名称正在更改
  • C# Newtonsoft 反序列化 JSON 数组

    我正在尝试使用 Newtonsoft 反序列化数组 以便我可以在列表框中显示来自基于云的服务器的文件 但无论我尝试什么 我总是会收到此错误 Newtonsoft Json JsonReaderException 解析值时遇到意外字符 路径
  • 如何发送和接收大型 JSON 数据

    我对全栈开发比较陌生 目前正在尝试找出一种有效的方法send and fetch我的前端 React 和后端 Express 之间存在大量数据 同时最大限度地减少内存使用 具体来说 我正在构建一个地图应用程序 它需要我处理大型 JSON 文
  • 如何将此数据编码为 JSON 中的父/子结构

    我正在使用 d3 js 将动物 有机体 家族 一次最多 4000 个 可视化为树形图 尽管数据源也可以是目录列表或命名空间对象列表 我的数据如下 json organisms name Hemiptera Miridae Kanakamir
  • 如何在golang中解析JSON而不需要解组两次

    我有一个 Web 套接字连接 它在 JSON 对象中发送不同类型的消息 并且我想将内容解组到一些已知的结构中 为此 我认为我应该执行以下操作 步骤 1 将 JSON 解组为通用映射 字符串 接口 步骤 2 找到我要找的钥匙 步骤 3 尝试将
  • 将两个 JSON 数据合并为具有特定键值的一个

    我有两个 CSV 文件 球数据 json id 1 color red id 2 color blue 法庭 json court id 2001 ball in use 1 court id 2005 ball in use 2 如何根据
  • 为什么 json.Unmarshal 返回映射而不是预期的结构?

    看看这个游乐场 http play golang org p dWku6SPqj5 http play golang org p dWku6SPqj5 基本上 我正在工作的图书馆收到了interface 作为参数 然后需要json Unma
  • 来自 iPhone/iPad 的 json Web 服务

    有人可以帮助我解决如何从 iphone 或 ipad 使用 json Web 服务的问题吗 这里我的要求是使用 API 密钥实现 json webservice 如果可能的话发布一些教程或示例链接 谢谢 规范的 JSON 处理库是here
  • Elasticsearch:预期的字段名称,但得到了 START_OBJECT

    我一直在尝试运行以下查询 但每次运行时都会收到以下错误 nested ElasticsearchParseException Expected field name but got START OBJECT field value fact
  • 带有 Odata Next Page 和 Count 的 Web Api 未出现在 JSON 响应中

    我有一个 webapi 方法 我想打开 oData 分页等 我按照中的例子http www asp net web api overview odata support in aspnet web api supporting odata

随机推荐