1.使用微软自带的System.Web.Extensions.dll转换,该DLL文件一般存在于如下路径:c:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Web.Extensions.dll
具体操作如下:

//将List集合转换为Json字符串,必须应用上面的DLL文件,同时引用using System.Web.Script.Serialization;命名空间
JavaScriptSerializer serializer = new JavaScriptSerializer();
List<Person> list = new List<Person>();
for (int i = ; i < ; i++)
{
Person p = new Person("张三" + i, "重庆" + i, "" + i);
list.Add(p);
}
MessageBox.Show(serializer.Serialize(list)); //将Json字符串转换为集合,Person为自己定义的实体类
string json = "[{'Address':'重庆0','Age':'100','Name':'张三0'},{'Address':'重庆1','Age':'101','Name':'张三1'}]";
JavaScriptSerializer serializer = new JavaScriptSerializer();
List<Person> list = serializer.Deserialize<List<Person>>(json);

2.可以借助开源的Newtonsoft.Json.dll进行转换

//将List集合转换为Json字符串
JavaScriptSerializer serializer = new JavaScriptSerializer();
List<Person> list = new List<Person>();
for (int i = ; i < ; i++)
{
Person p = new Person("张三" + i, "重庆" + i, "" + i);
list.Add(p);
}
MessageBox.Show(JsonConvert.SerializeObject(list)); //从JSON字符串生成集合对象
String json="[{\"Name\":\"张三0\",\"Address\":\"重庆0\",\"Age\":\"100\"},{\"Name\":\"张三1\",\"Address\":\"重庆1\",\"Age\":\"101\"}] ";
var list=JsonConvert.DeserializeObject<Person>(json);

3.引用微软如下两个DLL

//注意引用:System.Runtime.Serialization,System.ServiceModel.Web
// 从一个对象信息生成Json串
public static string ObjectToJson(object obj)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
MemoryStream stream = new MemoryStream();
serializer.WriteObject(stream, obj);
byte[] dataBytes = new byte[stream.Length];
stream.Position = ;
stream.Read(dataBytes, , (int)stream.Length);
return Encoding.UTF8.GetString(dataBytes);
}
// 从一个Json串生成对象信息
public static object JsonToObject(string jsonString, object obj)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
MemoryStream mStream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
return serializer.ReadObject(mStream);
}

备注:
用到的类

public class Person
{
public String Name { get; set; }
public String Address { get; set; }
public int Age { get; set; } public Person() { } public Person(String name, String address, String age)
{
this.Name = name;
this.Address = address;
this.Age = age;
}
}

C#将集合和Json格式互相转换的几种方式的更多相关文章

  1. C# 对象与JSON字符串互相转换的三种方式

    C# 对象与JSON字符串互相转换的三种方式 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 关于内存对象和JSON字符串的相互转换, ...

  2. JSON字符串互相转换的三种方式和性能比较

    C# 对象与JSON字符串互相转换的三种方式 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 关于内存对象和JSON字符串的相互转换, ...

  3. ast.literal_eval(jsonStr) json格式字符串转dict 2种方式

    json.loads(jsonStr, encoding='utf-8')import ast ast.literal_eval(jsonStr)

  4. C++ OCCI API数据库操作之连接、返回查询结果集为json格式

    使用C++操作数据库,转换返回结果集为json格式,易于解析. 以下程序的编译.运行环境:Windows 10 1803.VS2017 17.5.2(vc14).解决方案配置:Release.解决方案 ...

  5. Scala集合和Java集合对应转换关系

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一 ...

  6. Unity 数据Json格式的转换

    把对象转换为字节序列的过程称为对象的序列化. 把字节序列化恢复为对象过程称为对象的反序列化. JSON格式的转换,是一大神给我说的,让我拿来存储数据库时对一些数据的处理,感觉特别好用.但是我并没有深入 ...

  7. JavaBean到JSon格式的转换例子的代码

    内容过程,把做工程过程较好的内容片段备份一次,如下的内容是关于 JavaBean到JSon格式的转换例子的内容,应该对各朋友有一些用处. User u = new User(); u.setId(1) ...

  8. 在PHP代码中处理JSON 格式的字符串的两种方法:

    总结: 在PHP代码中处理JSON 格式的字符串的两种方法: 方法一: $json= '[{"id":"1","name":"\u ...

  9. 将 数据库中的结果集转换为json格式(三)

    从数据库中得到结果集 public String list() throws Exception { Connection con = null; PageBean pageBean = new Pa ...

随机推荐

  1. 001-linux中特殊权限

  2. input文本框只能输入数字

    HTML中的input文本框有时候需要数字的做输入检查,如果能做输入之前限定只能输入数字的话,就可以省去在提交时候的输入内容检查了. 下面是自己在火狐浏览器上调试出的实现,实现原理就是在键盘事件(on ...

  3. eclispe 相关设置

    1. 关闭js文件校验: 1). windows->preference->Java Script->Validator->Errors/Warnings->Enable ...

  4. iphone6 inline-flex兼容问题

    在编写微信端页面时,遇到这样的问题:position属性为flex的导航栏,其li标签在其余设备上显示正常,但在iphone6上浮动错误. 究其原因,是iphone6不支持position属性中的fl ...

  5. shell分析http日志

    http状态码1字头----信息,服务器收到请求,需要请求者继续执行操作2字头----成功,操作被成功接收并处理3字头----重定向,需要进一步的操作以完成请求4字头----客户端错误,请求包含语法错 ...

  6. 20145206邹京儒Exp6 信息搜集与漏洞扫描

    20145206邹京儒Exp6 信息搜集与漏洞扫描 一.实践过程记录 openvas漏洞扫描 1.openvas-check-setup来查看下他的安装状态: 如下图所示:在步骤7中出现错误,显示需要 ...

  7. TP/TCP/UDP

    这两周我继续学习CCSDS协议栈中位于传输层较低位置的SCPS-TP协议,并且复习了TCP/IP体系中的TCP协议和UDP协议,通过学习和对比两个体系的协议,加深了我对SCPS-TP协议的认识和理解. ...

  8. SPOJ LAS(BFS)题解

    题目:VJ 思路: BFS+回溯,但是要剪枝,看了dalao的题解,超时+WA无数发,终于过了 #include<cstdio> #include<cstring> #incl ...

  9. WinForm画网格并填充颜色

    因为研究CodeCombat上的最后一题,自己尝试分解题目,然后想到需要画网格,还有最优化的方法 源代码如下 using System; using System.Collections.Generi ...

  10. 【查看内存参数详解】Linux free -m 详细说明

    free 命令相对于top 提供了更简洁的查看系统内存使用情况:$ free                                       total            used   ...