【winform 学习】C# 转换成JSON对象
C#里面对json的处理有2种,JavaScriptSerializer和DataContractJsonSerializer。
JavaScriptSerializer读出来就是key-value pair这种Dictionary<string, object>的东西,这个比较通用。
DataContractJsonSerializer类似于其他的Serializer,比如XMLSerializer一类的,是对象序列化/反序列化用的
第一种示例代码:
(测试发现using System.Web.Script.Serialization不能在Winform 中引用,所以JavaScriptSerializer 不用在winform中使用
那winform 下怎么解析JSON 可以参考:http://q.cnblogs.com/q/46365/ 1.Json.NET 2. 引用官方的System.Web.Extensions.dll
dll文件:可以网上下载,或者参考下面地址的方面:http://wenku.it168.com/d_000825166.shtml):
string jsonStr = @"{""fruits"":{""a"":""orange"",""b"":""banana"",""c"":""apple""},""name"":{""z"":""zhangsan"",""l"":""lisi""}}"; JavaScriptSerializer serializer = new JavaScriptSerializer(); Dictionary<string, object> json = serializer.DeserializeObject(jsonStr) as Dictionary<string, object>; Dictionary<string, object> obj = json["fruits"] as Dictionary<string, object>; Console.WriteLine(obj["a"]); Console.ReadLine();第二种:DataContractJsonSerializer很不错,(不过,要申明DataContract数据数据契约,如果参数的名字不是固定的话,用第一种更好)
[DataContract] public class DanTengObj { [DataMember(Order = 1, Name = "fruits")] public Fruits fruits { get; set; } [DataMember(Order = 2, Name = "name")] public Name name { get; set; } [DataContract] public class Fruits { [DataMember(Order = 1, Name = "a")] public string a { get; set; } [DataMember(Order = 2, Name = "b")] public string b { get; set; } [DataMember(Order = 3, Name = "c")] public string c { get; set; } } [DataContract] public class Name { [DataMember(Order = 1, Name = "z")] public string z { get; set; } [DataMember(Order = 1, Name = "l")] public string l { get; set; } } } static void DanTengJsonTest() { string jsonStr = @"{""fruits"":{""a"":""orange"",""b"":""banana"",""c"":""apple""},""name"":{""z"":""zhangsan"",""l"":""lisi""}}"; DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(DanTengObj)); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr))) { DanTengObj obj = js.ReadObject(ms) as DanTengObj; Console.WriteLine(obj.fruits.a); } }参考地址:http://bbs.csdn.net/topics/390545176
【winform 学习】C# 转换成JSON对象的更多相关文章
- Java对象转换成xml对象和Java对象转换成JSON对象
1.把Java对象转换成JSON对象 apache提供的json-lib小工具,它可以方便的使用Java语言来创建JSON字符串.也可以把JavaBean转换成JSON字符串. json-lib的核心 ...
- json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值
一.json相关概念 json,全称为javascript object notation,是一种轻量级的数据交互格式.采用完全独立于语言的文本格式,是一种理想的数据交换格式. 同时,json是jav ...
- List转换成JSON对象
List转换成JSON对象 1.准备工作 导入jar包 (1)json-lib-2.3-jdk15.jar (2)commons-beanutils-1.8.0.jar (3)commons-coll ...
- List转换成JSON对象报错(五)
List转换成JSON对象 1.具体错误如下 Exception in thread "main" java.lang.NoClassDefFoundError: org/apac ...
- List转换成JSON对象报错(四)
List转换成JSON对象 1.具体错误如下 Exception in thread "main" java.lang.NoClassDefFoundError: org/apac ...
- List转换成JSON对象报错(三)
List转换成JSON对象 1.具体错误如下 Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/e ...
- List转换成JSON对象报错(二)
List转换成JSON对象 1.具体报错如下 Exception in thread "main" java.lang.NoClassDefFoundError: org/apac ...
- List转换成JSON对象报错(一)
List转换成JSON对象 1.具体报错如下 Exception in thread "main" java.lang.NoClassDefFoundError: org/apac ...
- 特殊字符导致json字符串转换成json对象出错
在对数据库取出来的数据(特别是描述信息)里面含有特殊字符的话,使用JSON.parse将json字符串转换成json对象的时候会出错,主要是双引号,回车换行等影响明显,左尖括号和右尖括号也会导致显示问 ...
- 转换成json字符串,与json字符串转换成java类型都要先转换成json对象
转换成json字符串,与json字符串转换成java类型都要先转换成json对象
随机推荐
- C# XmlSerializer实现序列化浅析
C# XmlSerializer类是实现序列化的一个类,那么关于C# XmlSerializer的学习我们要掌握怎么样的操作方法呢?那么这里向你详细介绍具体的操作细节情况. C# XmlSeriali ...
- I18N
App.config <?xml version="1.0" encoding="utf-8" ?> <configuration> & ...
- python(八)内置模块logging/os/time/sys/json/pickle
模块 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护.为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少 ...
- Python3基础 isinstance 判断一个变量是否为指定的类型
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- [像黑客一样生活] shell终端听音乐之网易云shell版
这是一个Python程序,使用Python构建,并以mpg123作为后端.Follow me... 特点: Vim 式的流畅操作,支持快捷键绑定 支持电台.收藏等各种特色功能 支持 OS X 及各类 ...
- 剑指offer二:替换空格
题目描述: 请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 解题思路: ...
- 关于JS中apply方法的基本理解
最近研究OpenLayers源码时,发现其中使用了比较多的apply方法,对其也是很不明白.于是上网经过多方面了解以及自己细细体会后,终于算是基本明白是其干什么的了,这里分享下.apply方法的造型是 ...
- python 发送邮件实例
留言板回复作者邮件提醒 -----------2016-5-11 15:03:58-- source:python发送邮件实例
- ElasticSearch学习问题记录——nested查询不到数据
通过代码创建了索引名称为demoindex,索引类型为school,以下是索引类型的数据映射结构: { "state": "open", "setti ...
- Pycharm使用问题# 程序界面出现方框字符
Pycharm 程序至今依旧存在国际化问题,有时会出现程序界面有方框的现象,windows和linux好像都会出现,如下图: