基入JavaScriptSerializer 自己写了个 通过json获取特定的值的程序
来源:互联网 发布:rc串联电路实验数据 编辑:程序博客网 时间:2024/05/19 02:20
本人还是太懒了 懒得打字 用得着的 就拿去吧 ! 代码如下 够了
/// <summary>
/// 将JSON反序列化为dictionary
/// </summary>
/// <param name="jsonData"></param>
/// <returns></returns>
public static Dictionary<string, object> JsonToDictionary(string jsonData)
{
//实例化JavaScriptSerializer类的新实例
JavaScriptSerializer jss = new JavaScriptSerializer();
try
{
//将指定的 JSON 字符串转换为 Dictionary<string, object> 类型的对象
return jss.Deserialize<Dictionary<string, object>>(jsonData);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
string a = "event.name";
string[] cans = a.Split('.');Dictionary<string, object> dic = JsonTools.JsonToDictionary(sb.ToString());
List<string> tt= Json2DataByString(sb.ToString(),cans,dic );
public static List<string> Json2DataByString(string sb,string[] cans,Dictionary<string,object> dic) {
string tmpStr = "";
ArrayList list = new ArrayList();
List<string> tmp=null;
var query = from d in dic
where d.Key == cans[0]
select d.Value;
if (query.FirstOrDefault().GetType().ToString().Contains("System.Collections.ArrayList"))
{
tmp = new List<string>();
list = (ArrayList)query.FirstOrDefault();
for (int i = 0; i < list.Count; i++)
{
dic = (Dictionary<string, object>)list[i];
query = from d in dic
where d.Key == cans[1]
select d.Value;
// Console.WriteLine(query.FirstOrDefault());
tmpStr = query.FirstOrDefault().ToString();
tmp.Add(tmpStr);
}
return tmp;
}
else if (query.FirstOrDefault().GetType().ToString().Contains("System.Collections.Generic.Dictionary"))
{
tmp = new List<string>();
dic = (Dictionary<string, object>)query.FirstOrDefault();
query = from d in dic
where d.Key == cans[1]
select d.Value;
try
{
dic = (Dictionary<string, object>)query.FirstOrDefault();
}
catch (Exception)
{
// Console.WriteLine(query.FirstOrDefault().ToString());
// return query.FirstOrDefault().ToString();
tmpStr = query.FirstOrDefault().ToString();
tmp.Add(tmpStr);
return tmp;
}
// Console.WriteLine(query.FirstOrDefault().GetType().ToString());
tmp = new List<string>(cans);
tmp.RemoveRange(0, cans.Length-1);
cans = tmp.ToArray();
return Json2DataByString(sb, cans, dic);
}
else {
tmp = new List<string>();
// Console.WriteLine(query.FirstOrDefault().ToString());
// return query.FirstOrDefault().ToString();
tmpStr = query.FirstOrDefault().ToString();
tmp.Add(tmpStr);
return tmp;
}
}
- 基入JavaScriptSerializer 自己写了个 通过json获取特定的值的程序
- 自己写的一个入栈程序
- 写了个自己的bigint
- 第一个自己写的小程序
- 通过JAVA从高德地图URL连接获取json数据 解析并存入数据库的程序举例
- 自己写了一个通过smarty与php相互结合的例子,动态生成静态程序,写的很烂
- Extjs4---自己写了个类似web desktop的小程序
- 自己通过要求,根据自己最近所学,简要写了一个linux下的server/client服务程序
- 无聊写了个看电影的程序,
- 写了个挺好玩的程序
- jsoup通过获取的内容写自己的页面
- 写个自己的
- 写个自己的
- 恶作剧小程序,自己写的第一个autoit程序
- 自己写个继承于View(textview或其他的)的类,便于自己特定 要求
- 自己写个继承于View(textview或其他的)的类,便于自己特定 要求
- 写程序find特定生效的iptables
- 我的第一个完全自己写的C程序
- python基础
- GEEK编程练习— —通配符匹配
- 【Android基础知识】ListView和适配器的使用
- MVP架构模式
- mysql 数据库配置
- 基入JavaScriptSerializer 自己写了个 通过json获取特定的值的程序
- 层层剖析-四大组件
- MacBook怎样装Win10?双系统玩转Win10
- oracle的常用函数 instr() 和substr()函数
- inode与super block
- pdm数据库设计导出excel
- Qt如何添加现有的ui文件
- android ExifInterface类
- 《一念永恒》简介