登录
首页 >  Golang >  Go问答

通过Golang从JSON中提取特定数据

来源:stackoverflow

时间:2024-02-18 09:09:21 204浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《通过Golang从JSON中提取特定数据》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

tmpbyte, _ := json.marshal(vdata["user"])

fmt.println(string(tmpbyte))

我从 mongodb 获取了这些数据,

[
  {
    "avatar_image": "https://i6e.jpg",
    "display_name": "flash.info",
    "image_user": "",
    "user_id": "qXGFIa",
    "username": "flash.info"
  },
  {
    "avatar_image": "https://847a",
    "display_name": "Akhmad Jazuli",
    "image_user": "",
    "user_id": "mf7EXj",
    "username": "akhmad.jazuli"
  },
  {
    "avatar_image": "https://i-stageb10a.jpg",
    "display_name": " Alfan Rey",
    "image_user": "",
    "user_id": "bsiAlG",
    "username": "fn.alfan"
  }
]

如何从该数据中获取 user_id 的唯一循环?

用户 id1 用户id2 用户id1


正确答案


第一步是为您的实体创建有关用户的数据结构,然后使用 mongodb 解码数据。

type User struct {
    Id          primitive.ObjectID `bson="_id"`
    AvatarImage string             `bson="avatar_image"`
    DisplayName string             `bson="display_name"`
    UserId      string             `bson="user_id"`
    UserName    string             `bson="username"`
}

func GetUserIds(ctx context.Context) ([]string, error) {
    userIds := make([]string, 0)
    cur, err := collectionUser.Find(ctx, nil)
    if err != nil {
        return nil, err
    }

    for cur.Next(ctx) {
        user := new(User)
        if err := cur.Decode(user); err != nil {
            return nil, err
        }
        
        userIds = append(userIds, user.UserId)
    }
    
    return userIds, nil
}

}

理论要掌握,实操不能落!以上关于《通过Golang从JSON中提取特定数据》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>