C#递归获取JSON所有键值对
因工作需要,我需要获取JSON所有键值对。
这里我使用List存储,因为有键冲突,但是要求是所有键值对都需要,不理会冲突,所以没有使用字典。
public static List<string> GetSignStr(string json, List<string> strList)
{
json = json.Replace("\r\n", string.Empty);
json = json.Replace("[", string.Empty);
json = json.Replace("]", string.Empty);
JObject o = JObject.Parse(json);
foreach (var x in o)
{
if (x.Value.GetType() == typeof(JObject) || (x.Value.GetType() == typeof(JArray)))
GetSignStr(x.Value.ToString(), strList);//递归
else
strList.Add(x.Key + "=" + x.Value.ToString() + "&");//这里x.Key则为键,x.Value为值。可以选择使用字典
}
return strList;
}
传入的是JSON字符串,以及一个存储的List。
调用方式:
List<string> listStr = new List<string>();//
listStr = GetSignStr(jsonStr, listStr);
补充:
定义一个键值对的类进行存储:
public class KeyValue
{
public string key { get; set; }
public string value { get; set; }
}
public static List<KeyValue> DG(string json,List<KeyValue> strList)
{
json=json.Replace("\r\n",string.Empty);
json = json.Replace("[", string.Empty);
json = json.Replace("]", string.Empty);
var o = JObject.Parse(json);
foreach (var x in o)
{
if (x.Value.GetType() == typeof(JObject) || (x.Value.GetType() == typeof(JArray)))
{
DG(x.Value.ToString(), strList);
}
else
{
KeyValue keyValue = new KeyValue();
keyValue.key = x.Key;
keyValue.value = x.Value.ToString();
strList.Add(keyValue);
}
}
return strList;
}
调用方式:
string json=“”;//这个为你要解析的JSON字符串
List<KeyValue> jsonList = new List<KeyValue>();
jsonList = DG(json,jsonList);
结果图:
遍历出来想怎么样就是你的事了。
foreach (var tmp in jsonList)
{
Console.WriteLine(tmp.key+":"+tmp.value);
}
转载于:https://www.cnblogs.com/tofumoxi/p/10736109.html
C#递归获取JSON所有键值对相关推荐
- map中获取数组_如何从php多维数组中获取特定的键值?
点击蓝字关注我们!每天获取最新的编程小知识! 源 / php中文网 源 / www.php.cn 在这篇文章中,我们将给大家介绍如何在php中从多维数组中获取特定的键值数组.这里我们将使用a ...
- Redis中字符串string数据类型(保存(设置键值、过期时间、设置多个键值、追加值)、获取(获取单一键值、获取多个键值))
字符串类型是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型的V ...
- python读取json数据的key值_jquery中怎么获取json的key值?
展开全部 获取方法如下:用jquery回调函数完成. $.each(json, function(i) { console.log(i); //获取键值 console.log(json[i]) ...
- android键值列表,Android Json不规则键值解析与转换
简述 在Android开发的时候,通过网络请求获取后台返回数据与上传数据给后台是十分常见的.有时候,我们会遇到需要解析和传递特殊键值的Json,对于这种情况,引出了本次要讲诉的内容. Json数据解析 ...
- java 遍历map获取下标_java 遍历Map并且获取其中的键值
import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.M ...
- JAVA获取json中的值
先导入json格式化的依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson ...
- redis获取存在的键值_Redis 分布式锁、限流
谈及分布式系统的时候,很多企业都会使用到分布式锁,分布式锁的实现方案目前主要是存在两种,redis实现和zookeeper实现. redis实现方案是多个线程相互竞争,在redis的某一个节点内创建一 ...
- Oracle怎么获取json类型字符串值,sql解析json格式字段 如何获取json中某个字段的值?...
java将json数据解析为sql语句?小编给你倒一杯热水.可你惦记着其他饮料,所以你将它放置一旁.等你想起那杯水时,可惜它已经变得冰冷刺骨. 图片中是json数据,每个数据的开头都有表名称,操作类型 ...
- JSON数据格式(键值对)(一)
简介 是一种数据格式,结构为键值对的方式存储和传输,例如 第一个JSON格式 JSON 对象在大括号({})中书写: 对象可以包含多个名称/值对: { "name":"这 ...
最新文章
- java基础学完就直接学ssm_java基础学习笔记3(SSM基础)
- MySQL varchar和char类型
- Dijkstra 最短路
- h5获取http请求头_React 前端获取http请求头信息
- 何必言精通——十年杂感
- Linux 下的0 1 2特殊文件描述符~
- java jquery jsonp 跨域_Jquery跨域调用(JSONP)遇到error问题的解决
- 谁是“顶会狂魔”?周明、张潼等上榜,清华第四,北大第六 | 2018 ML和NLP顶会论文统计出炉...
- ai背景合成_视频素材不好找!图片也能生成视频啦,AI剪辑助力原创短视频创作...
- MySQL高级建表语句
- PVE系列教程(三)、安装黑威联通
- operands could not be broadcast together with shapes
- 【可解释机器学习】-线性回归案例【基础版】(python代码)
- latex编辑公式好用的在线网址
- css中margin和padding设置成百分比时参照物是谁
- http://www.cnblogs.com/Jackie-zhang/p/6071769.html
- 100、基于51单片机数码管温控 温度控制风扇系统设计
- SAP CEWB 批量修改 工艺路线 和 BOM
- 火车票软件哪个好用_订车票的软件哪个好?2018十大购买车票APP排行榜推荐
- 关于Windows Build版本号