C# DataContractJsonSerializer 处理Json

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.ServiceModel.Web;
using System.IO;
namespace Json1
{
    class Program
    {
        [DataContract(Namespace = "http://blog.csdn.net/longhaoyou")]
        public class JsonData
        {
            [DataMember(Order = 0)]
            public string id { get; set; }
            [DataMember(Order=1)]
            public string name { get; set; }
        }

        public static string JsonToString<T>(T value)
        {
             var vStream=new MemoryStream();
             DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
             serializer.WriteObject(vStream, value);
             byte[] jsondata = new byte[vStream.Length];
             vStream.Position = 0;
             if (vStream.Read(jsondata, 0, jsondata.Length) != jsondata.Length)
                 throw new Exception("读取出错");
             return Encoding.UTF8.GetString(jsondata);
        }

        public static T StringToJson<T>(string text)
        {
            byte[] jsondata = Encoding.UTF8.GetBytes(text);
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
            var vStream=new MemoryStream(jsondata);
            return (T)serializer.ReadObject(vStream);
        }
        static void Main(string[] args)
        {
            JsonData data = new JsonData() { id = "0001", name = "龙号友" };
            string jsontext = JsonToString(data);
            Console.WriteLine(jsontext);
            data = StringToJson<JsonData>(jsontext);
        }
    }
}

时间: 2024-08-26 22:13:54

C# DataContractJsonSerializer 处理Json的相关文章

(转)JavaScriptSerializer,DataContractJsonSerializer解析JSON字符串功能小记

JsonAbout: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.Web.Script.Serialization;using System.Runtime.Serialization.Json; namespace ConsoleApplicationTest{ public class JsonAbout { pub

Ajax与JSON使用教程

Ajax与JSON使用教程1.1.1 摘要 Ajax技术的核心是XMLHttpRequest对象(简称XHR),可以通过使用XHR对象获取到服务器的数据(入门教程qkxue.net),然后再通过DOM将数据插入到页面中呈现(腾云科技ty300.com).虽然名字中包含XML,但Ajax通讯与数据格式无关,所以我们的数据格式可以是XML或JSON等格式. XMLHttpRequest对象用于在后台与服务器交换数据,具体作用如下: 在不重新加载页面的情况下更新网页    在页面已加载后从服务器请求数

Ajax与JSON的一些总结

1.1.1 摘要 Ajax技术的核心是XMLHttpRequest对象(简称XHR),可以通过使用XHR对象获取到服务器的数据,然后再通过DOM将数据插入到页面中呈现.虽然名字中包含XML,但Ajax通讯与数据格式无关,所以我们的数据格式可以是XML或JSON等格式. XMLHttpRequest对象用于在后台与服务器交换数据,具体作用如下: 在不重新加载页面的情况下更新网页 在页面已加载后从服务器请求数据 在页面已加载后从服务器接收数据 在后台向服务器发送数据 本文目录 XMLHttpRequ

JSON/XML序列化与反序列化(非构造自定义类)

隔了很长时间再重看自己的代码,觉得好陌生..以后要养成多注释的好习惯..直接贴代码..对不起( ▼-▼ ) 保存保存:进行序列化后存入应用设置里 ApplicationDataContainer _appSettings = ApplicationData.Current.LocalSettings; //这个是保存一些页面输入信息 private async void Save_Click(object sender, RoutedEventArgs e) { if (userName.Tex

C#对 Json的序列化和反序列化时出现“k_BackingField”

在C#2.0的项目中,以前经常使用Json.NET实现序列化和反序列化.后来从c#3.0中开始使用新增的DataContractJsonSerializer进行json相关的操作.微软提供的原生类库使用上并不复杂,参考一下msdn你很容易就会写出序列化和反序列化的方法. 不过使用该类库方法的过程中还是不慎意外发现了k_BackingField. 举例之前说一下我们的一个简单的实体类Person,它有如下定义: Person实体 public class Person { public int I

Json.Net的介绍与简单实用(兼容2.0/3.0/3.5/4.5/RT)

本文的前提是你已经熟悉Json,如果您还不知道什么是Json是什么,请自行查看维基百科. 一.Json.Net是什么? Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象.让你轻松实现.Net中所有类型(对象,基本数据类型 等)和Json的转换. 二.为什么使用Json.Net? 我们知道在.Net中内置了读写Json

.net处理JSON简明教程

Json.Net是.net中的一种流行的高性能的JSON框架. 特点 灵活的JSON序列化转化.net对象为JSON字符串.和把JSON字符串转换为.net对象. 手动读写JSON的Linq to JSON 比.net内置的JSON序列化程序更高的性能和速度. 便于读写的JSON 从XML中读取或写入JSON 支持Silverlight和Windows phone. 当你读写的JSON与.net类紧密关联时,JSON序列化程序是一个不错的选择.JSON序列化程序将自动读写相关类的JSON. 如果

Json.Net介绍及实例

本系列教程假设读者已经对Json有一定的了解,关于Json在这里不多说.本系列教程希望能对读者开发涉及到Json的.Net项目有一定的帮助.本系列教程是根据官方文档资料和自己项目应用汇总而成.如果觉得本系列对你有用,望多多关注.本人还只是个未毕业的学生,水平有限,尽请指正. 一.Json.Net有什么用? Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Linq To JSON可以快速的读写Json,通过JsonSeri

C# 序列化与反序列化Serialization之Json Xml Binary Soap JavaScript序列化

所谓的序列化其实就是把一个内存中的对象信息转化成一个可以持久化保存的形式,方便保存数据库和文件或着用于传输, 序列化的主要作用是不同平台之间进行通信与信息的传递保存等,常用的有序列化有Json Xml Binary Soap JavaScript序列化等,当然我们也可以使用第三方的序列化类库,第三方的序列化类库可以参照网上的,这里不再赘述, 本文主要介绍Json Xml Binary Soap JavaScript等6种序列化的方法, 添加引用以下类库 using System.Runtime.