go解析复杂json数组字符串:结合使用json和simple-json库
原始json数组字符串
[{"addition_links": {"build_history": {"absolute": false,"href": "/api/v2.0/projects/test/repositories/zhangxueliang%252Fmyapp/artifacts/sha256:5f4afc8302ade316fc47c99ee1d41f8ba94dbe7e3e7747dd87215a15429b9102/additions/build_history"}},"digest": "sha256:5f4afc8302ade316fc47c99ee1d41f8ba94dbe7e3e7747dd87215a15429b9102","extra_attrs": {"architecture": "amd64","author": null,"created": "2018-02-25T06:04:41.923389438Z","os": "linux"},"id": 176,"labels": null,"manifest_media_type": "application/vnd.docker.distribution.manifest.v2+json","media_type": "application/vnd.docker.container.image.v1+json","project_id": 7,"pull_time": "2021-12-17T01:59:08.570Z","push_time": "2021-01-06T01:58:10.546Z","references": null,"repository_id": 110,"size": 6755615,"tags": [{"artifact_id": 176,"id": 199,"immutable": false,"name": "v2","pull_time": "2021-12-17T01:59:08.570Z","push_time": "2021-01-06T01:58:10.568Z","repository_id": 110,"signed": false}],"type": "IMAGE"},{"addition_links": {"build_history": {"absolute": false,"href": "/api/v2.0/projects/test/repositories/zhangxueliang%252Fmyapp/artifacts/sha256:9eeca44ba2d410e54fccc54cbe9c021802aa8b9836a0bcf3d3229354e4c8870e/additions/build_history"}},"digest": "sha256:9eeca44ba2d410e54fccc54cbe9c021802aa8b9836a0bcf3d3229354e4c8870e","extra_attrs": {"architecture": "amd64","author": "MageEdu <mage@magedu.com>","created": "2018-03-02T03:39:41.482586301Z","os": "linux"},"id": 175,"labels": null,"manifest_media_type": "application/vnd.docker.distribution.manifest.v2+json","media_type": "application/vnd.docker.container.image.v1+json","project_id": 7,"pull_time": "2021-12-17T01:59:08.502Z","push_time": "2021-01-06T01:58:09.419Z","references": null,"repository_id": 110,"size": 6757253,"tags": [{"artifact_id": 175,"id": 198,"immutable": false,"name": "v1","pull_time": "2021-12-17T01:59:08.502Z","push_time": "2021-01-06T01:58:09.437Z","repository_id": 110,"signed": false}],"type": "IMAGE"}
]
go代码
package mainimport ("encoding/json""fmt""io/ioutil""net/http""time"simplejson "github.com/bitly/go-simplejson"
)func main() {// 使用%252F转义"/"url := "http://192.168.111.xxx:8603/api/v2.0/projects/test/repositories/zhangxueliang%252Fmyapp/artifacts"resp, err := http.Get(url)if err != nil {fmt.Println("报错了")return}body, _ := ioutil.ReadAll(resp.Body)var rr []map[string]interface{}json.Unmarshal(body, &rr)for _, v := range rr {b, _ := json.Marshal(v)sj, err := simplejson.NewJson(b)if err != nil {panic(err)}tags, err := sj.Get("tags").Array()fmt.Println(tags)}
}
结果
解析出name字段
// fmt.Println(tags)for _, value := range tags {tagname, _ := value.(map[string]interface{})fmt.Println(tagname["name"])}
如果不进行断言判断,就会报错:
可参考链接:
https://studygolang.com/articles/345
go解析复杂json数组字符串:结合使用json和simple-json库相关推荐
- json数组字符串转list集合
在json数组里,除了可以表示数值外,字符串也是其中重要的一个组成.在数组中字符串和以前所学的内容相差不多,我们可以把模块的内容继承过来.那么如果想把json数组字符串转换成list集合,有八种不同的 ...
- java写json数组字符串,Java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表. 前端数据转化与请求 var contracts = [ {id: '1', name: 'yanggb合同1'}, {i ...
- JS/Jquery遍历JSON对象、JSON数组、JSON数组字符串、JSON对象字符串
JS遍历JSON对象 JSON对象 var jsonObj = {"id": 102,"year": "2019-2020","l ...
- JSON数组字符串取值方法
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson ...
- Go使用simple-json解析json数组字符串:以Harbor获取镜像tag为例
package mainimport ("encoding/json""fmt""io/ioutil""net/http" ...
- mysql json数组字符串转数组_数组、对象、字符串转JSON的函数
很多时候从服务器传过来的json文本比较复杂,下面的函数可以把数组,String,Object转为JSON格式的内容. JSON = { encode : function(input) { if ( ...
- c语言遍历json数组,如何使用c动态获取所有json元素?
json.net库中的jtoken对象非常有用,您可以访问json对象和数组,而不需要一组复杂的域模型类.当我必须访问复杂对象图的一些独立属性时,我使用它.我不想为了访问几个属性而定义一大堆样板类. ...
- JSON数组形式字符串转换为Map数组
String strArr = "[{\"deptName\":\"面雕科\",\"deptCode\":\"001\& ...
- 学会Hive解析Json数组
在Hive中会有很多数据是用Json格式来存储的,如开发人员对APP上的页面进行埋点时,会将多个字段存放在一个json数组中,因此数据平台调用数据时,要对埋点数据进行解析.接下来就聊聊Hive中是如何 ...
最新文章
- 推荐一位玩自动化的 Python 爱好者
- 解数独(Python)
- 无法加载站点/服务的所有 ISAPI 筛选器,因此启动中止——Service Unavailable解决方法合集...
- 实习成长之路:MySQL七:事务到底是隔离的还是不隔离的?
- 纽微特记事:刚内斗胜利,就说业务难做
- mysql实战27 | 主库出问题了,从库怎么办?
- Android 自定义万能的抽屉布局(侧滑菜单)GenericDrawerLayout
- java毕业设计宠物领养饲养交流管理平台Mybatis+系统+数据库+调试部署
- 训练集和测试集的产生方法
- PS基础入门(二、快速选择工具和魔棒的使用)
- 树莓派 无线网卡服务器,树莓派(Raspberry Pi)USB无线网卡配置方法
- 英语知识(与字面意思 相反的) Corner office
- win10去掉快捷方式小箭头_快捷方式小箭头很烦人 一招教你取消
- 大三开学,百度面试感受
- 我被湖北省钟祥市H36463五路公汽拒…
- scrapy爬虫并保存数据库
- 如何快速拆分PDF文件(照片快速转换成pdf)
- 猫喜欢吃鱼,可猫不会游泳
- 【计算机网络期末复习资料1】
- 中科创达C++ 一面(技术面、24min、offer)
热门文章
- 大油井隐藏的箱子_魔兽世界:历经版本变迁的5大隐藏boss!全部都经历过的才是大神...
- c语言课本第八章答案,c语言第八章字符串编程答案
- c++17(33)-数值上下限、无穷、非数、中文字符串
- 嵌入式笔录(4)-LC并联电路选频和AM解调
- 【CV】基于OpenCV的手掌检测和手指计数
- 【机器学习】太强了!这个建模神器可以玩一辈子
- 【深度学习】深度学习经典数据集汇总
- 【算法知识】详解选择排序算法
- “远程银行”优秀厂商认证!网易云信入选《区域性银行数字化厂商全景报告》...
- 活动 | 5G万物智联下互联网通信技术升级之路