为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 JSON 数组转换为对象

如何将 JSON 数组转换为对象

Go
慕田峪4524236 2023-06-26 16:56:56
我有以下 json{"data":{"0":{"0":"1","1":"Test1","2":"Test2","DT_RowId":"row_1"}}}我想删除外层索引我想要如下{"data":[{"0":"1","1":"Test1","2":"Test2","DT_RowId":"row_1"}]}这应该在 Go 中完成。
查看完整描述

1 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

你必须做这样的事情:


package main


import (

    "encoding/json"

    "fmt"

)


func main() {

    data1 := make(map[string]map[string]interface{})

    s1 := `{"data":{"0":{"0":"1","1":"Test1","2":"Test2","DT_RowId":"row_1"}}}`

    err := json.Unmarshal([]byte(s1), &data1)

    if err != nil {

        // check error

    }


    data2 := make(map[string][]interface{})

    data2["data"] = []interface{}{data1["data"]["0"]}

    s2, err := json.Marshal(data2)

    if err != nil {

        // check error

    }


    fmt.Printf("%s\n", s2)

    // result will be:

    // {"data":[{"0":"1","1":"Test1","2":"Test2","DT_RowId":"row_1"}]}

}

你可以在操场上检查一下。

并且不要忘记在使用之前检查数据,例如:


// instead of:

data2["data"] = []interface{}{data1["data"]["0"]}


// you must have something like:

val1, ok := data1["data"]

if !ok { ... }

// and

val2, ok := val1["0"]

if !ok { ... }



查看完整回答
反对 回复 2023-06-26
  • 1 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信