C#关于json字符串解析的封装
来源:互联网 发布:淘宝装修全屏海报 编辑:程序博客网 时间:2024/04/29 03:36
本文的目标是实现C#语言对json字符串解析的封装,使用到的动态链接库是:Newtonsoft.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的字符串进行解析,更多负责的类型都是在这基础之上的~
0 0
- C#关于json字符串解析的封装
- C# 解析JSON字符串
- 关于json字符串解析
- C#解析多重的JSON字符串
- C# 解析json格式字符串
- C#解析JSON字符串总结
- C#解析JSON字符串总结
- C#解析JSON字符串总结
- C#解析JSON字符串总结
- C#解析JSON字符串总结
- C#后台把多个字符串结果封装成JSON格式并返回前台解析
- C#中的JSON封装与解析
- 关于java解析json字符串
- Android Json解析的封装
- Json的解析与封装
- Json数据解析的封装
- 关于C#中JSON解析
- 关于使用newtonsoft 解析json字符串,即是将json字符串转换成json对象的写法
- 绘图,路径
- 验证XML文档
- CF 551 B 水题
- JSF页面间传值精辟总结
- 几种最短路径算法简介(一)
- C#关于json字符串解析的封装
- 程序员学习编程需要攻克的8个障碍
- 安卓坐标
- 1072: [SCOI2007]排列perm
- tail跟踪日志时打印时间
- Spinner学习
- 全球CPU四大IP核的攻“芯”战
- Elasticsearch+Kibana+Logstash 搭建日志平台
- Android 语言国际化