C# Json数组序列化和反序列总结
1、创建json数组,例:
JArray arrFile = new JArray();
arrFile.Add(new JObject() {
new JProperty("FilePath",jArray[i]["FilePath"].ToString()),//文件路径
new JProperty("FileName",jArray[i]["FileName"].ToString()),//文件名
new JProperty("Type",jArray[i]["Type"].ToString()),//文件类型
new JProperty("IsDirectory",jArray[i]["IsDirectory"].ToString()),//是否文件夹
new JProperty("ParentNode",jArray[i]["ParentNode"].ToString()),//文件夹路径
new JProperty("Date",jArray[i]["Date"].ToString()),//日期
});
2、Json序列化
一、例:
简单对象Person:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
序列化为JSON字符串:
protected void Page_Load(object sender, EventArgs e)
{
Person p = new Person();
p.Name = "张三";
p.Age = ; string jsonString = JsonHelper.JsonSerializer<Person>(p);
Response.Write(jsonString);
}
输出结果:
{"Age":,"Name":"张三"}
二、例:
非数组格式用JObject加载:
string jsonText = "{\"a\":\"aaa\",\"b\":\"bbb\",\"c\":\"ccc\"}";
//"{'a':'aaa','b':'bbb','c':'ccc'}";
var mJObj = JObject.Parse(jsonText);
数组格式用JArray加载:
string jsonText1 = "[{'a':'aaa','b':'bbb','c':'ccc'},{'a':'aa','b':'bb','c':'cc'}]";
//"[{\"a\":\"aaa\",\"b\":\"bbb\",\"c\":\"ccc\"},{\"a\":\"aa\",\"b\":\"bb\",\"c\":\"cc\"}]";
var mJObj1 = JArray.Parse(jsonText1);
3、反序列化Demo:
protected void Page_Load(object sender, EventArgs e)
{
string jsonString = "{\"Age\":28,\"Name\":\"张三\"}";
Person p = JsonHelper.JsonDeserialize<Person>(jsonString);
}
ASP.NET中的JSON序列化和反序列化还可以使用JavaScriptSerializer,在System.Web.Script.Serializatioin命名空间下,需引用System.Web.Extensions.dll.也可以使用JSON.NET.
4、读取json数组中特定的参数值
//读取json数组中特定的参数值
string readStream = sr.ReadToEnd();
JArray jArray = (JArray)JsonConvert.DeserializeObject(readStream);
if (jArray.Count>)
{
for (int i = ; i < jArray.Count; i++)
{
string str = jArray[i]["FilePath"].ToString();
}
}
5、Json字符串解析
Json字符串普通格式解析(常用):
string jsonText = "{\"zone\":\"海淀\",\"zone_en\":\"haidian\"}";
JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
string zone = jo["zone"].ToString();
string zone_en = jo["zone_en"].ToString();
Json字符串嵌套格式解析:
string jsonText = "{\"beijing\":{\"zone\":\"海淀\",\"zone_en\":\"haidian\"}}";
JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
string zone = jo["beijing"]["zone"].ToString();
string zone_en = jo["beijing"]["zone_en"].ToString();
Json字符串数组格式解析
string jsonArrayText = "[{'a':'a1','b':'b1'},{'a':'a2','b':'b2'}]"; //"[{'a':'a1','b':'b1'}]即使只有一个元素,也需要加上[]
string jsonArrayText = "[{\"a\":\"a1\",\"b\":\"b1\"},{\"a\":\"a2\",\"b\":\"b2\"}]"; //上面写法和此写法效果一样
JArray jArray = (JArray)JsonConvert.DeserializeObject(jsonArrayText);//jsonArrayText必须是带[]数组格式字符串
string str = jArray[]["a"].ToString();
C# Json数组序列化和反序列总结的更多相关文章
- JSON数组序列化C#方法
/// <summary> /// dataTable转换成Json格式 JSON对应关系 三层数组 /// </summary> /// <param name=&qu ...
- ASP.NET MVC 网站开发总结(六)——简谈Json的序列化与反序列化
首先,先简单的谈一下什么是序列化与反序列化,序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通 ...
- json数组的序列化和反序列化json数组的序列化和反序列化
如题,我就不多说了,自己看代码的,很好理解 using System; using System.Collections.Generic; using System.Web; using System ...
- Newtonsoft.Json序列化和反序列之javascriptConvert.SerializeObject,DeserializeObject,JsonWriter,JsonReader
这里下载:http://www.newtonsoft.com/products/json/安装: 1.解压下载文件,得到Newtonsoft.Json.dll 2.在项目中添加引用.. jav ...
- (转)Newtonsoft.Json序列化和反序列
这里下载:http://www.newtonsoft.com/products/json/安装: 1.解压下载文件,得到Newtonsoft.Json.dll 2.在项目中添加引用.. 序列化 ...
- Newtonsoft.Json序列化和反序列
这里下载:http://www.newtonsoft.com/products/json/安装: 1.解压下载文件,得到Newtonsoft.Json.dll 2.在项目中添加引用.. 序列化 ...
- java list序列化json 对象、json数组
list<T> 序列化 json对象 ----------- JSONObject -------JSONObject.toJSONString(str); 解析:JSONObj ...
- [.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化
[.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化 本节导读: 介绍JSON的结构,在JS中的使用.重点说明JSON如何在.N ...
- Asp.net中Json的序列化和反序列化(一)
JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...
随机推荐
- Java学习笔记32(IO:序列化流)
对象中的数据 ,以流的形式,写入到文件中保存,过程称为写出对象,对象的序列化 ObjectOutputStream将对象写到序列中,实现序列化 在文件中,以流 的形式,将对象读取出来,过程称为读取对象 ...
- dynamic programming:find max subarray
public static mark dynway( ) //put or pop the books into the basket,mark the highest recorder { int ...
- sqlite 3基本使用方法
1.sqlite数据库数据类型 Integer 整型 varchar(10) 字符数组 float 浮点型 double 双精度浮点型 char(10) 字符型 text 文本型 2.sql语法 2. ...
- 20165228 学习基础和C语言基础调查
========== 做中学读后感 我依然认为兴趣与自觉性是推动一个人进步的两大因素,他们之间的区别是"兴趣"带来的影响更多是主动性的学习,而"自觉"则是略显被 ...
- 安卓 dex 通用脱壳技术研究(一)
注:以下4篇博文中,部分图片引用自DexHunter作者zyqqyz在slide.pptx中的图片,版本归原作者所有: 0x01 背景介绍 安卓 APP 的保护一般分为下列几个方面: JAVA/C代码 ...
- Factor Graph因子图
参考链接1: 参考链接2: 参考ppt3: Factor Graph 是概率图的一种,概率图有很多种,最常见的就是Bayesian Network (贝叶斯网络)和Markov Random Fiel ...
- HDU - 5157 :Harry and magic string (回文树,求多少对不相交的回文串)
Sample Input aca aaaa Sample Output 3 15 题意: 多组输入,每次给定字符串S(|S|<1e5),求多少对不相交的回文串. 思路:可以用回文树求出以每个位置 ...
- HPU第四次积分赛-L:A Winged Steed(完全背包)
A Winged Steed 描述 有n种千里马,每一种都有若干匹,第i种马的颜值ai,价格di.现有m个牧马人要去挑选千里马,每一位牧马人对马的颜值都有要求:{所选马的颜值总和} ⩾Ai.现在 ...
- (18)jq事件操作
jq的私人网站:http://jquery.cuishifeng.cn/ 具体的查看上面的网站 <!DOCTYPE html><html><head> <me ...
- &,~,|,^
与.或.异或的运算 与运算 (“ & ”) 参与运算的两个数据,按照二进制位进行“与运算”.运算规则:0&0=0; 0&1=0; 1&0=0; 1& ...