有 Json 标签但未导出[重复]

2024-02-11

开始学习golang。 任务:获取 Json 并解组它。 但我得到了错误:

Json tag but not exported

如何让未导出的字段变成导出的,然后用方法实现呢?

这是代码:

package main

import (
    "encoding/json"
    "fmt"
    "io/ioutil"
    "net/http"
)

type Time struct {
    time
}
type time struct {
    id                    string  `json:"$id"`
    currentDateTime       string  `json:"currentDateTime,string"`
    utcOffset             float64 `json:"utcOffset,string"`
    isDayLightSavingsTime bool    `json:"isDayLightSavingsTime,string"`
    dayOfTheWeek          string  `json:"dayOfTheWeek,string"`
    timeZoneName          string  `json:"timeZoneName,string"`
    currentFileTime       float64 `json:"currentFileTime,string"`
    ordinalDate           string  `json:"ordinalDate,string"`
    serviceResponse       string  `json:"serviceResponse,string"`
}

func (t *Time) GetTime() (Time, error) {
    result := Time{}

    return result, t.Timenow(result)
}
func (t *Time) Timenow(result interface{}) error {

    res, err := http.Get("http://worldclockapi.com/api/json/utc/now")
    if err != nil {
        fmt.Println("Cannot get Json", err)
    }

    body, err := ioutil.ReadAll(res.Body)
    if err != nil {
        fmt.Println("Cannot create Body", err)
    }

    defer res.Body.Close()

    var resultJson interface{}
    return json.Unmarshal(body, &resultJson)

}

func main() {

    var a Time
    t, err := a.GetTime()
    if err != nil {
        fmt.Println("Error ", err)
    }
    fmt.Println("Time:", t)
}

请详细解释结构有什么问题以及如何得到正确的响应?


您正在向未导出的字段添加 JSON 标记。

结构体字段必须以大写字母 (exported https://golang.org/ref/spec#Exported_identifiers) 获取 JSON 包以查看其值。

struct A struct {
    // Unexported struct fields are invisible to the JSON package.
    // Export a field by starting it with an uppercase letter.
    unexported string

    // {"Exported": ""}
    Exported string

    // {"custom_name": ""}
    CustomName string `json:"custom_name"`
}

此要求的根本原因是 JSON 包使用reflect检查结构字段。自从reflect不允许访问未导出的结构字段,JSON 包看不到它们的值。

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

有 Json 标签但未导出[重复] 的相关文章

  • 列出 JSON 的所有键和值

    假设我有一些如下所示的 JSON items item id 0001 type donut name Cake ppu 0 55 batters batter
  • AJAX:检查字符串是否为 JSON?

    我的 JavaScript 有时会在这一行崩溃 var json eval this responseText 当争论时会导致崩溃eval 不是 JSON 在进行此调用之前有什么方法可以检查字符串是否为 JSON 我不想使用框架 有什么方法
  • 简单、安全的API认证系统

    我有一个简单的 REST JSON API 供其他网站 应用程序访问我网站的一些数据库 通过 PHP 网关 基本上该服务的工作原理如下 调用 example com fruit orange 服务器返回有关橙子的 JSON 信息 问题是 我
  • 如何修复 jq 扁平化 JSON 数组的重复输出

    我正在尝试使用 jq 命令压平 JSON 文件 但输出是重复的 请在这里查看我的jqplay https jqplay org s gwvMIH fed https jqplay org s gwvMIH fed 我的输入 JSON cos
  • 来自 ajax 的 Bootstrap 表 json

    我有 ajax 和 bootstrap 表的问题 我有一个 ajax JSON 我用这个方法调用 document ready function ajax url php process php method fetchdata dataT
  • 加载腌制字典对象或加载 JSON 文件哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 什么更快 A Unpickling 加载 一个 pickled 字典对象 使用pickle load or B 使用以下命令将 JSON
  • Python - UnicodeDecodeError:“charmap”编解码器无法解码位置 44 中的字节 0x81:字符映射到 <未定义>

    在 Python 3 Jupyter 笔记本上使用 pandas 我得到了 UnicodeDecodeError charmap 编解码器无法解码字节 0x81 位置 44 字符映射到 尝试读取如下所示的 json 文件时出错 Test1
  • WebApi 自定义 JsonConverter 未调用

    我为 Guid 实现了一个自定义 JsonConverter 如果我在像这样序列化的类的属性 Guid 类型 上声明它 JsonConverter typeof JsonGuidConverter 然后它被调用并且工作正常 但是 我想 自动
  • 在 Mono 中反序列化 JSON 数据

    使用 Monodroid 时 是否有一种简单的方法可以将简单的 JSON 字符串反序列化为 NET 对象 System Json 只提供序列化 不提供反序列化 我尝试过的各种第三方库都会导致 Mono Monodroid 出现问题 谢谢 f
  • 如何在 C# 中将 Json 转换为对象

    我想将 Json 转换为 C 中的对象 这里的 Json 是 值 e920ce0f e3f5 4c6f 8e3d d2fbc51990e4 如何使用 Object 问题看似愚蠢 但其实并不那么愚蠢 我没有简单的 Json 我有 IEnume
  • GSON 将带有日历的对象反序列化为带有 Mongo 日期的 json 并返回

    我有一些实体 其中包含一些日历属性 我想以将它们存储为 GSON 序列化 JSON 中的日期的方式对其进行序列化 因为 Mongo 可以将 date 存储为 new ISODate 我们通常通过使用 ExclusionStrategy 忽略
  • 将变量从 JSON 文件加载到 LESS CSS 预处理器中

    是否可以像使用 Stylus 一样将变量从 JSON 文件加载到 LESS CSS 预处理器中 与文件内容myvars json color1 112345 color2 667890 在 Stylus 中我 json myvars jso
  • 将产生 goroutine 的 golang 方法

    据我所知 如果 goroutine 太忙 它们会阻止其他 goroutine 运行 对我来说 这意味着我的应用程序的性能和响应能力可能取决于我知道哪些库方法将控制其他 goroutine 例如通常是 Read 和 Write 有什么方法可以
  • 从 json 数组中获取成对的值

    首先 这是我从 php 源获取的 json 值 oid 2 cid 107 oid 4 cid 98 oid 4 cid 99 之后 我想要得到并且oid值以及相应的cid值例如 oid 2 and cid 107一口气 oid 4 and
  • 使用 AFNetworking 2.0 发布 JSON 数据

    我有一个 Web 脚本 它通过 HTTP POST 请求接受 JSON 字符串作为输入 我遇到过几个相同的 AFNetworking 1 x 示例 任何人都可以指出我或提供 AFNetworking 2 0 示例 以对使用格式化 JSON
  • JSON 对象数组转 Java POJO

    将此 JSON 对象转换为 java 中的类 您的 POJO 类中的映射将如何 ownerName Robert pets name Kitty name Rex name Jake This kind of question is ver
  • 使用 Json.NET 序列化子类

    我正在尝试使用 Json NET 序列化子类 生成的 json 包含超类的序列化属性 但是not子类对象的属性 这似乎与我发现的一个问题有关这里就这样 https stackoverflow com q 5863496 498969 但必须
  • Dapper 在执行时挂起

    我有一个 IDb连接 sql UPDATE 表名 SET json json lastupdate SYSDATE WHERE id id var param new DynamicParameters param Add json jso
  • container_memory_working_set_bytes 与 process_resident_memory_bytes 和total_rss 之间的关系

    我希望了解以下关系 容器内存工作集字节 vs 进程驻留内存字节 vs 总计RSS 容器内存 rss 文件映射以便更好地配备OOM可能性警报系统 这似乎违背了我的理解 这让我现在感到困惑 如果容器 pod 运行单个进程 执行用 Go 编写的编
  • 使用多态对象数组进行 JSON 反序列化

    我在涉及多态对象数组的 JSON 反序列化方面遇到问题 我已经尝试过记录的序列化解决方案here https stackoverflow com questions 5186973 json serialization of array w

随机推荐

  • 使用 Flask 时 PyCUDA 上下文错误

    我正在使用 PyCUDA 来实现 smooth local affine 如图所示here https github com LouieYang deep photo styletransfer tf blob master smooth
  • 如何声明一个字节数组包含非ascii字符而不在python 3中转义

    这是我用python2写的一个例子 usr bin env python coding utf 8 from future import print function import sys struct def pack s list re
  • 如何修改ActiveXObject JS构造函数?

    我需要包装一个 IE ajax 请求以在发生时通知我 即我需要知道何时调用 open var xhr new ActiveXObject Microsoft XMLHTTP 做到这一点的唯一方法 我认为 是实现 ActiveXObject
  • 多个 ajax 调用的 jQuery 回调

    我想在单击事件中进行三个 ajax 调用 每个 ajax 调用都会执行不同的操作并返回最终回调所需的数据 这些调用本身并不相互依赖 它们可以同时进行 但是我希望在所有三个调用完成后进行最终回调 button click function f
  • 使用 Stream 比较两个集合 - anyMatch

    我想比较 a 中是否有任何对象list2存在于一个list1 我可以迭代两个列表并使用比较所有元素 contains 但我想知道是否没有更有效的方法 我发现this https stackoverflow com questions 225
  • 在 oninvalid 消息中创建换行符

    我想在 oninvalid 弹出消息中创建换行符 以便我可以在不同行上列出错误消息的多个要求 这是我试图创建的示例代码
  • R networkD3:单击操作显示节点数据帧的信息

    我有这个代码 library networkD3 Load data data MisLinks data MisNodes new nodes lt MisNodes new nodes var1 lt runif nrow MisNod
  • Android:如何在 Android 应用程序中显示谷歌地图?

    我已经构建了一个应用程序 可以为我进行一些坐标计算 它工作得很好 它也从我构建的数据库中检索点 我现在想做的是当按下菜单按钮时显示地图 我做了一个教程 只是一个地图显示 这就是它运行时所做的一切 但是当我尝试将我所做的事情合并到我的应用程序
  • UTF-8 中的值在 JSON 中被编码为 NULL

    我有一组关键字通过 JSON 从数据库 编码的 UTF 8 传递 其中一些可能具有特殊字符 如 等 这用作自动完成器的一部分 例子 array Coffee Cappuccino Caf 我应该补充一点 来自数据库的数组将是 array C
  • android:webview 未使用自定义 WebViewClient 加载 javascript

    我有一个非常基本的WebView这一直有效 直到我尝试添加自定义webViewClient它停止处理 JavaScript 的地方 难道我做错了什么 是否有另一种方法可以摆脱 WebView 中的地址栏和菜单选项 browser WebVi
  • Yii 框架中的 PHP 异步方法调用

    Question 我想知道是否可以在操作呈现视图时从 Yii 控制器方法之一异步调用该方法 让该方法完成长时间运行的操作 我想做类似下面的代码的事情 并且不需要返回结果my long running func public function
  • Postgresql 错误:“无法找到从未知到文本的转换函数”

    我有以下 postgresql 查询 with A as select 201405MASE04 as TestID Count TotQ Count distinct Case When SE1 then NULL else SE1 en
  • 如何释放 Protocol Buffer 内存

    message LongUserIdSeqIdMapData map
  • PayUmoney Android 集成问题

    我正在尝试将 PayUMoney 集成到我的应用程序中 如果我使用以下测试凭据 应用程序会给出正确的输出 String merchant key kYz2vV String salt zhoXe53j String base url htt
  • 具有立体 3D 重建功能的 OpenCV

    假设我计划使用 OpenCV 使用立体方法进行 3D 重建 并且我没有任何特殊的立体相机 只有网络摄像头 1 如何使用一组网络摄像头构建廉价的立体声设置 2 是否可以使用网络摄像头拍摄两个图像并使用 openCV API 将它们转换为立体图
  • java 中的 swt 中未打开且菜单未显示

    我想在java中嵌入microsoft word 我的程序将在 jframe 中打开一个 word 文档文件 经过大量搜索后 我找到了以下解决方案 在 JFrame 中打开 MS 文档 https stackoverflow com que
  • jQuery:使用变量作为函数名

    我正在尝试创建一个函数 根据我正在交互的元素的类来调用其他函数 我希望能够使用元素的类来调用函数 而不是使用 if 语句 下面的例子 function validate thisInput var thisClass thisInput a
  • 为什么 JavaFX 在使用文本组件时在字母之间添加额外的间距以及如何修复它?

    我正在尝试使用 JavaFX 的文本组件在我的应用程序中做一些漂亮的标题排版 然而 文本中的字母间距并不均匀 例如在单词 visiting the iting 这一部分似乎与第一部分脱节 在示例图像中 我使用 Arial 但我尝试的每种字体
  • Mac 上使用 zsh 绑定密钥

    我一直在尝试在 Mac 上绑定 zzh 中的按键 但遇到了一些问题 我知道我应该用谷歌搜索这个 但找不到我需要的东西 我一直在尝试将 ctrl backspace 绑定为与 ctrl w 等效 即删除一个单词 但我找不到它的关键代码 当我用
  • 有 Json 标签但未导出[重复]

    这个问题在这里已经有答案了 开始学习golang 任务 获取 Json 并解组它 但我得到了错误 Json tag but not exported 如何让未导出的字段变成导出的 然后用方法实现呢 这是代码 package main imp