Json序列化和反序列化(Newtonsoft)& 嵌套反序列化
2016-05-12 22:57
1071 查看
<1> 序列化单个实体对象
(1)将本地文件中的数据反序列化成实体对象
(2)将实体对象序列化
.txt中json格式的数据为:{"Name":"张三","Age":20,"Address":"上海市徐汇区"}
第一步:
添加dll引用:Newtonsoft.Json.dll (网上下载一个)
using Newtonsoft.Json;
第二步:
新建一个Student实体类:
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
public string Address { get; set; }
}
Main方法:
static void Main(string[] args)
{
string str = "";
using (StreamReader sw = new StreamReader(@"D:\student.txt", Encoding.Default))
{
str = sw.ReadToEnd();
}
if (!String.IsNullOrEmpty(str))
{
//反序列化(将{"Name":"张三","Age":20,"Address":"上海市徐汇区"}转化成实体)
Student st = JsonConvert.DeserializeObject<Student>(str);
Console.WriteLine("反序列化:" + "Name:" + st.Name + ", Age:" + st.Age.ToString() + ", Address:" + st.Address);
//序列化(将实体对象st转化成:{"Name":"张三","Age":20,"Address":"上海市徐汇区"})
string strSerialize = JsonConvert.SerializeObject(st);
Console.WriteLine("序列化: " + strSerialize);
}
Console.Read();
}
运行结果如下:
<2> 嵌套反序列化
例如,需要序列化下面的json数据:
string Content =
{
"rc": 1,
"re": [
{
"id": 123,
"name": "张三",
"age": 20,
}
]
}
需要定义下面两个实体类:
public class UserNameInfo
{
public int rc { get; set; }
public List<UserInfo> re { get; set; } //注意:这里一定要用List<T>
}
public class UserInfo
{
public int id { get; set; }
public string name { get; set; }
public int age { get; set; }
}
反序列化即可:
var item = JsonUtil<UserNameInfo>.Deserialize(Content); //Content为要反序列化的Json格式的字符串
(1)将本地文件中的数据反序列化成实体对象
(2)将实体对象序列化
.txt中json格式的数据为:{"Name":"张三","Age":20,"Address":"上海市徐汇区"}
第一步:
添加dll引用:Newtonsoft.Json.dll (网上下载一个)
using Newtonsoft.Json;
第二步:
新建一个Student实体类:
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
public string Address { get; set; }
}
Main方法:
static void Main(string[] args)
{
string str = "";
using (StreamReader sw = new StreamReader(@"D:\student.txt", Encoding.Default))
{
str = sw.ReadToEnd();
}
if (!String.IsNullOrEmpty(str))
{
//反序列化(将{"Name":"张三","Age":20,"Address":"上海市徐汇区"}转化成实体)
Student st = JsonConvert.DeserializeObject<Student>(str);
Console.WriteLine("反序列化:" + "Name:" + st.Name + ", Age:" + st.Age.ToString() + ", Address:" + st.Address);
//序列化(将实体对象st转化成:{"Name":"张三","Age":20,"Address":"上海市徐汇区"})
string strSerialize = JsonConvert.SerializeObject(st);
Console.WriteLine("序列化: " + strSerialize);
}
Console.Read();
}
运行结果如下:
<2> 嵌套反序列化
例如,需要序列化下面的json数据:
string Content =
{
"rc": 1,
"re": [
{
"id": 123,
"name": "张三",
"age": 20,
}
]
}
需要定义下面两个实体类:
public class UserNameInfo
{
public int rc { get; set; }
public List<UserInfo> re { get; set; } //注意:这里一定要用List<T>
}
public class UserInfo
{
public int id { get; set; }
public string name { get; set; }
public int age { get; set; }
}
反序列化即可:
var item = JsonUtil<UserNameInfo>.Deserialize(Content); //Content为要反序列化的Json格式的字符串
相关文章推荐
- js实现滑动门效果
- JSP快速入门教程——全十讲
- 从零开始学_JavaScript_系列(15)——js系列<4>(数值、字符串、对象、数组、函数、日期的基本方法)
- js中定时器的使用
- js dom
- JS canvas 表情
- C# JSON字符串序列化与反序列化
- js时间戳和日期字符串相互转换
- 【JavaScript】JavaScript小技巧
- 很简单但特别有效的js代码段
- jsp
- Json转Map
- JavaScript中__proto__与prototype的关系
- 利用Runtime实现对Json数据的ORM框架
- javascript第七天
- angular.js之路由实现
- Javascript复习第三天动态显示时间
- JavaScript-父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序
- angJs使选中的li背景颜色不同
- Js中关于转义符的使用和单双引号的区别