The way for C# array to JSON

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization.Json;
using System.IO;
using System.Runtime.Serialization;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Person p = new Person();
            p.Name = "Guo";
            p.Age = 29;
            p.Sex = true;

            Person p1 = new Person();
            p1.Name = "Pan";
            p1.Age = 30;
            p1.Sex = false;

            List<Person> lst = new List<Person>();
            lst.Add(p);
            lst.Add(p1);

            var serializer = new DataContractJsonSerializer(typeof(IList<Person>));
            var stream = new MemoryStream();
            serializer.WriteObject(stream, lst);
            byte[] dataBytes = new byte[stream.Length];
            stream.Position = 0;
            stream.Read(dataBytes, 0, (int)stream.Length);
            string dataString = Encoding.UTF8.GetString(dataBytes);
            Console.WriteLine("JSON string is:");
            Console.WriteLine(dataString);

            Console.WriteLine("**************************************************");
            using (MemoryStream outMs = new MemoryStream(Encoding.UTF8.GetBytes(dataString)))
            {
                // 注意类型,这里不再是List<T> 而是数组
                Person[] ps = (Person[])serializer.ReadObject(outMs);

                foreach (Person outPerson in ps)
                {
                    Console.WriteLine("Name:" + outPerson.Name);
                    Console.WriteLine("Age:" + outPerson.Age.ToString());
                    Console.WriteLine("Sex:" + outPerson.Sex.ToString());
                    Console.WriteLine();
                }
            }

        }
    }

    public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public bool Sex { get; set; }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值