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数组序列化和反序列总结的更多相关文章

  1. JSON数组序列化C#方法

    /// <summary> /// dataTable转换成Json格式 JSON对应关系 三层数组 /// </summary> /// <param name=&qu ...

  2. ASP.NET MVC 网站开发总结(六)——简谈Json的序列化与反序列化

    首先,先简单的谈一下什么是序列化与反序列化,序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通 ...

  3. json数组的序列化和反序列化json数组的序列化和反序列化

    如题,我就不多说了,自己看代码的,很好理解 using System; using System.Collections.Generic; using System.Web; using System ...

  4. Newtonsoft.Json序列化和反序列之javascriptConvert.SerializeObject,DeserializeObject,JsonWriter,JsonReader

    这里下载:http://www.newtonsoft.com/products/json/安装:   1.解压下载文件,得到Newtonsoft.Json.dll   2.在项目中添加引用.. jav ...

  5. (转)Newtonsoft.Json序列化和反序列

    这里下载:http://www.newtonsoft.com/products/json/安装:   1.解压下载文件,得到Newtonsoft.Json.dll   2.在项目中添加引用.. 序列化 ...

  6. Newtonsoft.Json序列化和反序列

    这里下载:http://www.newtonsoft.com/products/json/安装:   1.解压下载文件,得到Newtonsoft.Json.dll   2.在项目中添加引用.. 序列化 ...

  7. java list序列化json 对象、json数组

    list<T> 序列化   json对象   ----------- JSONObject -------JSONObject.toJSONString(str);  解析:JSONObj ...

  8. [.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化

    [.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化 本节导读: 介绍JSON的结构,在JS中的使用.重点说明JSON如何在.N ...

  9. Asp.net中Json的序列化和反序列化(一)

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...

随机推荐

  1. PODOFO编译

    由于LibHaru库只能创建PDF,所以只能换了. PODOFO项目的依赖项目有: FreeType2: https://sourceforge.net/projects/freetype/files ...

  2. Android:E/Surface: getSlotFromBufferLocked: unknown buffer: 0x7f9d1b41c0

    这个问题是在测试leakCanaryTestDemo时发现的,期初看到有点蒙,这个demo中只使用了一个button和一个textView控件进行测试,按理说是不应该出现这种问题,在 网上查找这个问题 ...

  3. shell脚本实例-nginx日志分析

    统计2018/8/6 PV量 grep "06/Aug/2018" access.log|wc -l 统计当天8:00 到9:00的PV awk '$4>="[06 ...

  4. 2019-03-07-day006-小数据池

    01 昨日内容回顾 字典: 映射,{} 键值对的形式存储,容器型数据类型,key 唯一的,可哈希的,value任意数据类型,对象. 3.6之前无序的, 3.6之后,有序的(第一次创建字典的顺序) 特点 ...

  5. py解释器PC

    pycharm激活方法: 今天更新了一下pycharm,结果之前的激活就不能用了,下面是激活方法: 1.mac下在终端进入etc目录: cd /etc 2.编辑hosts文件: vi hosts 将“ ...

  6. [err]default argument given for parameter 3 of '***'

    err ~/src/helper.cpp: In function ‘cv::Mat align_mean(cv::Mat, cv::Rect, float, float, float, float) ...

  7. [LeetCode&Python] Problem 485. Max Consecutive Ones

    Given a binary array, find the maximum number of consecutive 1s in this array. Example 1: Input: [1, ...

  8. Codeforces 1005D:Polycarp and Div 3

    题目链接:http://codeforces.com/problemset/problem/1005/D 题意 给出个字符串(全是数字),把这个字符串换分成一些子串,最多能划分多少个能够被3整除的子串 ...

  9. php 函数集锦

    1.array_intersect_assoc()用于比较两个(或更多个)数组的键名和键值,并返回交集. <?php $a1=array("a"=>"red& ...

  10. Plant(𝐶𝑜𝑑𝑒𝐹𝑜𝑟𝑐𝑒𝑠 − 185𝐴)

    #include<iostream> #include<cstring> using namespace std; ,mod=; struct Matrix { long lo ...