当前位置: 首页 > 面试题库 >

是否可以部分解码和更新JSON?(走)

祁乐邦
2023-03-14
问题内容

我只需要解码和更新json对象的特定值。问题是我不知道对象的完整结构。encoding / json包“忽略”
/截断了结构中未提供的字段,因此对这些字段进行编码会丢失。我想知道是否有可能仅解组我知道的结构,对其进行更新,然后再进行组封而不截断/删除未知的结构/信息。


问题答案:

似乎有可能。

package main

import (
    "encoding/json"
    "fmt"
    "log"
)

func main() {
    type Color struct {
        Space string
        Point json.RawMessage // delay parsing until we know the color space
    }
    type RGB struct {
        R uint8
        G uint8
        B uint8
    }
    type YCbCr struct {
        Y  uint8
        Cb int8
        Cr int8
    }

    var j = []byte(`
        {"Space": "YCbCr", "Point": {"Y": 255, "Cb": 0, "Cr": -10}}`)
    var colors Color
    err := json.Unmarshal(j, &colors)
    if err != nil {
        log.Fatalln("error:", err)
    }
    colors.Space = "no-space"

    b, err := json.Marshal(&colors)
    if err != nil {
        panic(err)
    }
    fmt.Printf("b is now %s", b)
    return

}


 类似资料:
  • 我们使用Golang实现了一个包含CRUD的REST API,在Update服务中,客户端可以发送部分JSON(包括更改的字段),我们需要处理这些更改对实体的更新。 逻辑上,我们需要通过Id从DB获取实体到结构,然后将有效载荷json解封到另一个结构并更新实体。 这是一个简单的例子,实际上它可能是一个嵌套的结构和嵌套的json,我们如何用golang或事件其他语言(如Java,.NET)来处理这种

  • 我有一个JavaFX TableView,它有两列。此表使用观察列表作为其模型。 我想将其中一个设置为可编辑,另一个设置为不可编辑。 首先,我尝试了FXML方法: 但这不管用。表格始终不可编辑。 我还尝试了java方式: 但这也不管用。所有的桌子都不能修改。 如果TableColumn有一个可编辑的属性,那么它应该可以单独设置。 如果你知道我哪里做错了,请帮帮我。谢谢。 PS:measureNum

  • 在中可以实现这样的功能吗 注意这里A是部分着色的。 我知道光凭类是不可能的。(文本显示在) 要实现这一点,有什么解决方案可以单独使用Swing或必须使用CSS? 编辑: 如果这是不可能的摆动,任何解决方案与以下标签?

  • 在google play服务的示例中,他们处理可能的版本更新,如下所示: 这将产生一条类似于

  • 问题内容: 所以…例如,我正在尝试将一个电子邮件“模板”引入iframe中,作为angularjs应用程序内用户的“预览”。iframe位于控制器区域内(我们称其为MainCtrl)。然后,用户将能够使用MainCtrl内提供的表单元素基于其输入来更新预览。举例来说,假设我们将模板拉入iframe的过程如下所示: 因此,在我们的index.html(angularjs应用)中,我们将具有绑定到{{

  • 我有一个非常简单的mysql记录如下: 这是它的冬眠实体;没什么特别的 为了方便起见,我使用Gson从前端传入的json字符串解析实体 记录的json字符串如下所示: 然后将从json字符串中解析userEntity: 我可以使用和。 如果每个字段都包含在json字符串中,那么事情看起来就像预期的那样。但当某些字段(如被省略时: 这表明我应该进行部分更新,并保留省略的字段不进行修改,但出现了问题。