golang 递归方式解析json串
golang 递归方式解析json串
package mainimport ("fmt""encoding/json"
)func jsonArrayParse(vv []interface{}){for i, u := range vv {switch vv1 := u.(type) {case string:fmt.Println(i, "[string_] :", u)case float64:fmt.Println(i, "[float64_]:", u)case bool:fmt.Println(i, "[bool_]:", u)case nil:fmt.Println(i, "[nil_]:", u)case []interface{}:fmt.Println(i, "[array_] :", u)jsonArrayParse(vv1)case interface{}:fmt.Println(i, "[interface_]:",u)m1 := u.(map[string]interface{})jsonObjectParse(m1)default:fmt.Println(" ", i, "[type?_]", u, ", ",vv1)}}
}func jsonObjectParse(f interface{}){m := f.(map[string]interface{})for k, v := range m {switch vv := v.(type) {case string:fmt.Println(k, "[string] :", vv)case float64:fmt.Println(k, "[float64]:", vv)case bool:fmt.Println(k, "[bool]:", vv)case nil:fmt.Println(k, "[nil]:", vv)case []interface{}:fmt.Println(k, "[array]:")jsonArrayParse(vv)case interface{}:fmt.Println(k, "[interface]:",vv)m1 := v.(map[string]interface{})jsonObjectParse(m1)default:fmt.Println(k, "[type?]",vv)}}
}
func main() {jsonStr := []byte(`{"Name":"aree", "Age":18,"From": [ "SZ", "GD" ],"data":[{"a":"aa","b":null},{"c":[]},{"list":["dd",1,"650827..."]}]}`)//jsonStr := []byte(`[{"Name":"aree", "Age":18,"From": [ "SZ", "GD" ],"data":[{"a":"aa","b":null},{"c":[]},{"list":["dd",1,"ff"]}]}]`)if (strings.Index(string(jsonStr[:]), "[") == 0) {var f []interface{}err := json.Unmarshal(jsonStr, &f)if err != nil {fmt.Println(err)}jsonArrayParse(f)} else {var f interface{}err := json.Unmarshal(jsonStr, &f)if err != nil {fmt.Println(err)}jsonObjectParse(f)}
}
golang 递归方式解析json串相关推荐
- Rapidjson的简单使用(拼接json串,存取文件中的json,解析json串)
Rapidjson的简单使用示例 很早就想用用Markdown了,一直没机会.今天就来试一下 先放个目录: Rapidjson的简单使用示例 rapidjson官方教程 本示例所用环境 示例代码与注释 ...
- pythonの鉴黄之路(五)——强行解析json串
*以下内容并非正规解决方案,效仿请谨慎. 之前有介绍过阿里云的鉴黄API接口http://blog.csdn.net/sm9sun/article/details/53321888 其支持:porn: ...
- golang string切片解析json
string切片在json解析中用到的比较多. package mainimport ("fmt""encoding/json" )type CateInfoA ...
- Java用JSONObject-lib来解析json串
直接贴代码:(所需jar包:json-lib.jar,可能会关联一些其它的jar包,请自行搜索.)import java.util.ArrayList; import java.util.HashMa ...
- Http协议(下载笑话网页,Get方式解析json)
自定义adapter: public class MyAdapter extends BaseAdapter {private Context context;private List<Joke ...
- 【Elasticsearch】使用 Elasticsearch Painless 脚本以递归方式遍历 JSON 字段
本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载.有问题可以先私聊我,本人每天都在线,会帮助需要的人. 文章目录 0.概述 1. 介绍 2.案例 2.1 示 ...
- json解析详解 java_Java解析Json数据的两种方式详解
JSON数据解析的有点在于他的体积小,在网络上传输的时候可以更省流量,所以使用越来越广泛,下面介绍使用JsonObject和JsonArray的两种方式解析Json数据. 使用以上两种方式解析json ...
- Oracle 使用GSON库解析复杂json串
在前文中讲到了如何使用JSON标准库解析json串,参考: Oracle解析复杂json的方法(转) 现补充一篇使用GSON库在Oracle中解析复杂json的方法. GSON串的使用教程参考官方文档 ...
- gjson - Golang 解析 JSON
文章目录 简介 主要类型 Type Result 方法 gjson result Path 修饰符 示例 介绍 自定义 备用 简介 Github 地址 go 安装: go get -u github. ...
最新文章
- 基本数据类型转换规则
- python爬虫算法深度优先_爬虫课程(四)|深度优先和广度优先算法
- 【c语言】蓝桥杯算法训练 简单加法(基本型)
- MYSQL的深入学习--优化步骤
- linux没有交换分区会怎样,linux – 服务器拒绝使用交换分区
- FFmpeg深度学习模块的历史、现状和计划
- .NET应用程序7种最常见的性能问题及其解决方案
- 小程序canvasu真机上数据图片不能使用
- Linux内核--基于Netfilter的内核级包过滤防火墙实现
- Pytorch中expand_as()函数详解
- WinForm窗体重要属性与公共控件的重要属性
- 再学 GDI+[77]: 区域(6) - GetRegionScans - 获取区域中的所有矩形
- javascript的window.open()具体解释
- php Hash Table(二) Hash函数
- 小心:网上几乎所有的Kms-pico都带木马
- s3f9454可c语言编程,微处理器S3F9454BZZ-DK94
- PTA 数据结构与算法题目集(中文)7-38 寻找大富翁(25 分)快排或堆排序
- 小学生的游戏 FZU - 1575
- (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
- Java、JSP实验室预约管理系统
热门文章
- Docker系列(八):Kubernetes横空出世背后的秘密
- 赵联松武汉大学计算机学院,武汉大学电气工程学院2018年优秀大学生暑期夏令.doc...
- 鸿蒙3部曲先看哪部,星辰变是“鸿蒙”系列的作品,那“鸿蒙”系列到底有多少部曲?...
- python中bind的用法_Python socket.bind方法代码示例
- 计算机与网络 文献,计算机与网络专著参考文献 计算机与网络参考文献怎么写...
- 不安分的管家——Jenkins
- LC6936-TWS耳机方案
- Android开发——进程间通信之Bundle和文件
- CP2101 usb转uart驱动
- AD域组策略管理-强制组策略更新报错(远程过程调用被取消8007071a、RPC服务器不可用800706ba)处理方法