不创建类将json数据转换
2015-12-09 21:26
886 查看
一般,取到json数据之后,都会将json数据转换为对象,通过属性取得里面的属性值,这样做可以很好地利用vs的智能提示,让开发更轻松,但是代价就是,你需要手动的创建json数据相对应的类。
也有其他方法可以很方便的取到数据:
1.利用正则表达式提取,代码如下:
一共三个方法,第一个是取json里面的int类型的值,当然稍微改造下的也可以取得bool类型的。。。
第二个放大取得string类型的值,
打三个方法,主要是为了解决json数据中日期类型的数据显示异常的问题。
2.利用Newtonsoft.Json把json对象转换成dynamic对象
上面只是演示,json字符串对应的是一个有code,symbol,stock三个属性的类
利用这个方法可以很方便的取值,但是要求你知道json的结构
好了,这就是今天的分享。
也有其他方法可以很方便的取到数据:
1.利用正则表达式提取,代码如下:
public static int GetIntProperty(string key, string json) { var code = 0; var regex = new Regex(String.Format("\"{0}\":(?<value>-?\\d+)", key), RegexOptions.IgnoreCase); var match = regex.Match(json); if (match.Success) { var codeValue = match.Groups["value"].Value; int.TryParse(codeValue, out code); return code; } return 0; } public static string GetStringProperty(string key, string json) { var regex = new Regex(String.Format("\"{0}\":\"(?<value>.+?)\"", key), RegexOptions.IgnoreCase); var match = regex.Match(json); if (match.Success) { return match.Groups["value"].Value; } return String.Empty; } public static string Serialize(object obj) { var jser = new JavaScriptSerializer(); var json = jser.Serialize(obj); json = Regex.Replace(json, @"\\/Date\((\d+)\)\\/", match => { DateTime dt = new DateTime(1970, 1, 1); dt = dt.AddMilliseconds(long.Parse(match.Groups[1].Value)); dt = dt.ToLocalTime(); return dt.ToString("yyyy-MM-dd HH:mm:ss"); }); return json; }
一共三个方法,第一个是取json里面的int类型的值,当然稍微改造下的也可以取得bool类型的。。。
第二个放大取得string类型的值,
打三个方法,主要是为了解决json数据中日期类型的数据显示异常的问题。
2.利用Newtonsoft.Json把json对象转换成dynamic对象
public void GetPropertyValue(string jsonStr) { dynamic stocks = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonStr); code = stock.name; symbol = stock.age; name = stock.gender; }
上面只是演示,json字符串对应的是一个有code,symbol,stock三个属性的类
利用这个方法可以很方便的取值,但是要求你知道json的结构
好了,这就是今天的分享。
相关文章推荐
- 轻松学习JavaScript十三:JavaScript基于面向对象之继承(包含面向对象继承机制)
- win7配置自己的IIS服务器(含json访问)
- Gson解析Json格式数据
- JavaScript内置对象
- JavaScript 对象笔记
- 使用反射,实现简单的JSON与Bean之间的转换
- js将long日期格式转换为标准日期格式
- JSP获取表格中单元格的内容
- JavaScript的基本数据类型的父级
- 轻松学习JavaScript十二:JavaScript基于面向对象之创建对象(二)
- 跟我extjs5(38--单个模块的设计[6获得模块列表数据])
- 【BZOJ4481&JSOI2015】非诚勿扰(数学期望)
- JS 问题集锦
- 对于js浮点数误差问题 完美解决办法
- ArcGIS+API+for+JS测距
- JavaScript中的类与对象
- JS画图
- js 翻页组件 pagination
- json 处理
- [原创作品]一个实用的js倒计时器 postby:zhutty.cnblogs.com