C#关于json字符串解析的封装
2015-06-17 20:00
766 查看
本文的目标是实现C#语言对json字符串解析的封装,使用到的动态链接库是:Newtonsoft.Json。
下面叙述封装的过程:
1.首先是构造Json解析对象JsonDecode:
由上面的代码可以看到,JsonDecode对象有2个成员变量,一个是JObject对象,这是我们要进行的操作对象;一个是json字符串,这是构造JsonDecode对象所需要传进来的待解析字符串。
2.根据不同的字符串进行解析,得到所需要的内容:
比如:{success:true,message:”123”},解析的方法如下:
还有比如上类型更为复杂的字符串比如:
解析代码如下:
1.首先定义一个Person对象,方便对数据进行保存:
2。接着进行解析:
以上就完成了对字符串的解析。
如果是对内部的date进行解析的话,通过以下代码:
以上,便是对基本的json的字符串进行解析,更多负责的类型都是在这基础之上的~
下面叙述封装的过程:
1.首先是构造Json解析对象JsonDecode:
private JObject jo;//json对象 private string jsonString;//json字符串 public JsonDecode(string str) { this.jsonString = str; try { this.jo = JObject.Parse(str.Trim()); Console.WriteLine("init jsondecode"); } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine("json base error!"); this.jo = JObject.Parse("\"MsgType\":\"error\""); } }
由上面的代码可以看到,JsonDecode对象有2个成员变量,一个是JObject对象,这是我们要进行的操作对象;一个是json字符串,这是构造JsonDecode对象所需要传进来的待解析字符串。
2.根据不同的字符串进行解析,得到所需要的内容:
比如:{success:true,message:”123”},解析的方法如下:
public Boolean getResult() { Boolean result = GetJObject()["success"].Value<Boolean>(); return result; } public string getMsg() { string result = GetJObject()["message"].Value<string>(); return result; }
还有比如上类型更为复杂的字符串比如:
{ "num": 2, "child": [ { "date": { "date": 15, "day": 1, "hours": 0, "minutes": 0, "month": 5, "nanos": 0, "seconds": 0, "time": 1434297600000, "timezoneOffset": -480, "year": 115 }, "addName": "admin", "addr": "北京", "name": "李", "phone": "123", "id": 106 }, { "date": { "date": 15, "day": 1, "hours": 0, "minutes": 0, "month": 5, "nanos": 0, "seconds": 0, "time": 1434297600000, "timezoneOffset": -480, "year": 115 }, "addName": "admin", "addr": "山东", "name": "张", "phone": "123", "id": 107 } ] }
解析代码如下:
1.首先定义一个Person对象,方便对数据进行保存:
public class Person { public string name; public string phone; public string addr; public int id; }
2。接着进行解析:
public List<Person> getPerson() { JToken listData = GetJObject()["child"]; List<Person> result = new List<Person>(); foreach (JToken jt in listData) { Person person = new Person(); person.name = jt.SelectToken("name").ToString(); person.phone = jt.SelectToken("phone").ToString(); person.addr = jt.SelectToken("addr").ToString(); person.id = int.Parse(jt.SelectToken("id").ToString()); result.Add(person); } return result; }
以上就完成了对字符串的解析。
如果是对内部的date进行解析的话,通过以下代码:
JToken listDate=jt.SelectToken("date"); foreach(JToken jt in listDate){ jt.SelectToken("date"); jt.SelectToken("day"); jt.SelectToken("month"); jt.SelectToken("minutes"); }
以上,便是对基本的json的字符串进行解析,更多负责的类型都是在这基础之上的~
相关文章推荐
- JavaScript 作用域
- js闭包的理解与用法
- 学习笔记《Servlet与JSP核心编程》1
- 高并发外部JS的阻塞下载
- JS获取本周、本季度、本月、上月的开始日期、结束日期
- 【JavaScript 7—基础知识点】:BOM
- 【JavaScript 7—基础知识点】:BOM
- js总结
- js计算日期之间的月份差
- Gson快速Json解析教程
- 【JavaScript】(2)选项卡切换
- ExtJs4 之 TreePanel
- extjs4 之 Grid 列编辑
- ExtJs4之Grid配置信息
- JavaScript 学习笔记(1):关于函数、对象以及面向对象
- 几种Json工具包的解析速度对比
- JS基础学习笔记(一)
- JS 创建对象(常见的几种方法)
- js对象及new对象/函数的比较区别
- JS当前日期相加相减