.net 3.5 DataContractJsonSerializer序列化及反序列化二(json格式化)

203 篇文章 4 订阅
 

 一,将类格式化成字符串

TestCPS block = new TestCPS();
            _Info result = new _Info();
            result._State = "0";
            result._Message = "0";
            block.result = result;
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(TestCPS));
            MemoryStream stram = new MemoryStream();
            serializer.WriteObject(stram, block);
            byte[] data = new byte[stram.Length];
            stram.Position = 0;
            stram.Read(data, 0, (int)stram.Length);
            string jsonString = Encoding.UTF8.GetString(data);

jsonString 就是json格式的字符串

TestCPS 类定义如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GetYJData
{

    [Serializable]
    public class TestCPS
    {
        private _Info Result;

        public _Info result
        {
            get { return Result; }
            set { Result = value; }
        }
    }
    [Serializable]
    public class _Info
    {
        private string State="0";
        public string _State
        {
            get { return State; }
            set { State = value; }
        }
        private string Message="输出信息";
        public string _Message
        {
            get { return Message; }
            set { Message = value; }
        }
    }
}

 

二,将字符串转化成类

string strdata = "{\"Result\":{\"State\":\"0\",\"Message\":\"填写验证失败时的出错提示\"}}";
            var ser = new DataContractJsonSerializer(typeof(TestCPS));
            var ms = new MemoryStream(Encoding.UTF8.GetBytes(strdata));
            TestCPS cpsData = (TestCPS)ser.ReadObject(ms);
            string str1 = cpsData.result._Message;
            string str2 = cpsData.result._State;

 

--------多条数据情况,即某个属性值为数组-------

string strdata="{\"result\":[{\"PlatformID\":\"11028\",\"UID\":\"100\",\"GameID\":\"1274\",\"UserName\":\"tkillerrt\",\"AddDate\":\"2011-12-13 23:59:59\",\"Amount\":\"10.0\",\"Units\":\"Y\"ItemNo\":\"13237915222477247\",\"AddWay\":\"\",\"CardNo\":\"\"}]}";

var ser = new DataContractJsonSerializer(typeof(_BaiduRegUserArr));
var ms = new MemoryStream(Encoding.UTF8.GetBytes(strdata));
_BaiduRegUserArr cpsDataArr = (_BaiduRegUserArr)ser.ReadObject(ms);
if (cpsDataArr != null)
{
 for (int i = 0; i < cpsDataArr.Result.Length; i++)
     {
  _BaiduRegUser model = cpsDataArr.Result[i];
  }
}

BaiduRegUserArr类定义如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GetYJData
{
    [Serializable]
    public class _BaiduRegUserArr
    {
        private _BaiduRegUser[] result;

        public _BaiduRegUser[] Result
        {
            get { return result; }
            set { result = value; }
        }
    }


    [Serializable]
    public class _BaiduRegUser
    {
       
        //[{,,"RegDate":"2011-12-13 16:01:00",,"ServerName":"","RegIP":"","CardNo":""}]
        private string PlatformID;

        public string PlatformID1
        {
            get { return PlatformID; }
            set { PlatformID = value; }
        }

        private string GameID;

        public string GameID1
        {
            get { return GameID; }
            set { GameID = value; }
        }

        private string RegDate;

        public string RegDate1
        {
            get { return RegDate; }
            set { RegDate = value; }
        }

        private string UserName;

        public string UserName1
        {
            get { return UserName; }
            set { UserName = value; }
        }

        private string UID;

        public string UID1
        {
            get { return UID; }
            set { UID = value; }
        }

        private string ServerName;

        public string ServerName1
        {
            get { return ServerName; }
            set { ServerName = value; }
        }

        private string RegIP;

        public string RegIP1
        {
            get { return RegIP; }
            set { RegIP = value; }
        }

        private string CardNo;

        public string CardNo1
        {
            get { return CardNo; }
            set { CardNo = value; }
        }
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值