当前位置:网站首页 > Vue.js开发 > 正文

map转json空值没了(map转为jsonobject)



为什么会生成空 JSON?

看例子,有这样一个 struct 类型 point,我想把他转化成 JSON 格式:

把 point struct 的变量转化成 JSON 格式

输出结果是:{}

为什么会这样,难道是忘记添加 JSON tag 了?我们试试:

加上 JSON tag

这次,输出结果依然是:{}

为什么还是 {} ?

因为对于和 JSON 格式相互转化来说,JSON tag 不是必须的。默认没有 tag 的时候,JSON 的字段名和 struct 的字段名是一样的。

难道是因为 struct 类型没有导出?我们试试:

point 变成 Point 了

这里把 point 变成 Point 了。

但输出结果依然是:{}

所以,struct 是否导出与 JSON 的相互转化没有关系。

然而,目前 struct 里面定义的字段目前是没有导出的,把这些字段导出试试:

Point 的字段都导出了

终于,结果和我们预期一样了:{"X":3,"Y":2.5}。

所以,要想与 JSON 格式相互转换(Marshal 和 Unmarshal),struct 的字段就需要导出。

如何忽略某些字段?

有两种办法:

第一种方法,就是不要导出忽略的字段;

第二种方法,如果这些忽略的字段必须导出,为了忽略他们,我们可以使用一种特殊的 JSON tag:“-”(就是一个横线)。

例子:

使用 - tag 在 JSON 转换时忽略字段

其结果是:{"A":"a"}。

注意:这里 b 字段没有导出,而 C 字段使用了 - JSON tag。

综上

为了与 JSON 相互转换,struct 相关的字段需要被导出。

但是对类型是否导出,以及是否使用了 JSON tag 无关。

我们可以使用 “-” 这个特殊的 JSON tag 来忽略字段。

到此这篇map转json空值没了(map转为jsonobject)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • vue2生命周期函数(vuejs生命周期函数)2026-03-10 10:36:05
  • vue路由守卫控制页面跳转(vue路由守卫怎么实现)2026-03-10 10:36:05
  • 多级列表的设置步骤wps(wps多级列表1.1怎么变2.1)2026-03-10 10:36:05
  • json字符串转map集合(json转list<map<string,string>>)2026-03-10 10:36:05
  • vue2关闭eslint检测(关闭vue eslint)2026-03-10 10:36:05
  • 数电票纳税人端打印控件V1.9(数电票纳税人端打印控件V1.6怎么安装)2026-03-10 10:36:05
  • ubuntu16.04镜像源(ubuntu18.04镜像)2026-03-10 10:36:05
  • 多级列表1.1 1.2(多级列表1.1 1.2 2.1怎么做)2026-03-10 10:36:05
  • vue3降级vue2(升级vue3)2026-03-10 10:36:05
  • 如何解决tomcat乱码问题(tomcat7.0乱码怎么解决)2026-03-10 10:36:05
  • 全屏图片