.net已经集成了json解析,类名叫DataContractJsonSerializer

DataContractJsonSerializer 类型公开以下成员。

  名称 说明
DataContractJsonSerializer(Type) 初始化 DataContractJsonSerializer 类的新实例,以便序列化或反序列化指定类型的对象。
DataContractJsonSerializer(Type, IEnumerable<Type>) 初始化 DataContractJsonSerializer 类的新实例,以便序列化或反序列化指定类型的对象以及可在对象图中呈现的已知类型的集合。
属性

 
  名称 说明
Equals(Object) 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。)
Finalize 允许对象在垃圾回收对 Object 进行回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)
GetType 获取当前实例的 Type。 (继承自 Object。)
MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
ReadObject 以 JSON(JavaScript 对象表示法)格式读取文档流,并返回反序列化的对象。
ToString 返回表示当前对象的字符串。 (继承自 Object。)
WriteObject 将指定对象序列化为 JavaScript 对象表示法 (JSON) 数据,并将生成的 JSON 写入流中。
 

可以使用 DataContractJsonSerializer 类将类型实例序列化为 JSON 文档,并将 JSON 文档反序列化为类型实例。 例如,可以使用包含重要数据(如名称和地址)的属性创建一个名为 Person 的类型。 然后,可以创建和操作一个 Person 类实例,并在 JSON 文档中写入所有其属性值以便于以后检索。 可随后将该 JSON 文档反序列化为 Person 类,或者反序列化为另一个具有等效数据协定的类。

示例

 
 

namespace SL_DataContractJsonSerializer
{
public partial class Page : UserControl
{
public Page()
{
InitializeComponent();
} //This uses an event handler, not SL data binding
void OnClick(object sender, EventArgs args)
{
txtOutput1.Text = "Create a User object and serialize it.";
string json = WriteFromObject();
txtOutput2.Text = json.ToString(); // Displays: {"Age":42,"Name":"Bob"} txtOutput3.Text = "Deserialize the data to a User object.";
string jsonString = "{'Name':'Bill', 'Age':53}";
User deserializedUser = ReadToObject(jsonString);
txtOutput4.Text = deserializedUser.Name; // Displays: Bill
txtOutput5.Text = deserializedUser.Age.ToString(); // Displays: 53
}
// Create a User object and serialize it to a JSON stream.
public static string WriteFromObject()
{
//Create User object.
User user = new User("Bob", ); //Create a stream to serialize the object to.
MemoryStream ms = new MemoryStream(); // Serializer the User object to the stream.
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(User));
ser.WriteObject(ms, user);
byte[] json = ms.ToArray();
ms.Close();
return Encoding.UTF8.GetString(json, , json.Length); } // Deserialize a JSON stream to a User object.
public static User ReadToObject(string json)
{
User deserializedUser = new User();
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json));
DataContractJsonSerializer ser = new DataContractJsonSerializer(deserializedUser.GetType());
deserializedUser = ser.ReadObject(ms) as User;
ms.Close();
return deserializedUser;
} } [DataContract]
public class User
{
[DataMember]
public string Name { get; set; } [DataMember]
public int Age { get; set; } public User() { } public User(string newName, int newAge)
{
Name = newName;
Age = newAge;
} } }

Silverlight

受以下版本支持:5、4、3

Silverlight for Windows Phone

受以下版本支持:Windows Phone OS 7.1、Windows Phone OS 7.0

XNA Framework

受以下版本支持:Windows Phone OS 7.0

最新文章

  1. 负margin的移位参考线
  2. POJ3249:Test for Job
  3. [Head First设计模式]策略模式
  4. GsonUtils.getGson().fromJson() 转泛型集合
  5. 【转】【C/C++】实现memcpy函数
  6. JDK环境变量安装正确还报错的情况解决方案
  7. C# App.config 自定义 配置节 报错“配置系统未能初始化” 解决方法
  8. day06 Java面向对象
  9. location对象位置操作,进行跳转
  10. java两个音频进入巩固期 玩的同时类似的伴奏
  11. CDQ分治与整体二分小结
  12. SQL Server Cast、Convert数据类型转换
  13. wpf1
  14. echarts画饼环状饼图相关参数配置
  15. golang中的接口实现(一)
  16. 【代码笔记】iOS-使用MD5加密
  17. 深入理解Java中的逃逸分析
  18. Robot Framework 教程 (7) - 使用For循环
  19. [算法][LeetCode]Spiral Matrix
  20. Oracle SYS_CONTEXT用法

热门文章

  1. Prolog学习:数独和八皇后问题
  2. Spring系列(一):Spring的基本概念及其核心
  3. python环境搭建和开发工具的配置【转】
  4. 表单提交之List集合
  5. 因修改/etc/sudoers权限导致sudo和su不能使用的解决方法
  6. ASP.net MVC 文件下载的几种方法
  7. 强大!HTML5 3D美女图片旋转实现教程
  8. js如何获取asp.net服务器端控件的值(label,textbox,dropdownlist,radiobuttonlist等)
  9. linux cfs调度器_理论模型
  10. 【NLP】simhash判断文档相似度