The general approach Json

1, Json format:

  • 对象{"name": "value", "name1": "value1"}
  • Object contains an array { "name": "value", "name1": "value1", "name3": [{ "name4": "value4"}, { "name5": "value5"}]}
  • 对象数组[{"name": "value", "name1": "value1"},{"name2": "value2", "name3": "value3"}]

2, C # general class of objects processed Json: DataContractJsonSerializer, Namespace: System.Runtime.Serialization.Json;

3, with a console to display, as follows:

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

 

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Person p1 = new Person { name = "LiLei", age = 12, skillArr = new[] { "C#", "Java" } };
            Person p2 = new Person { name = "Jim", age = 13, skillArr = new[] { "ASP.NET", "Javascript" }, friends = new List<Person> { p1 } };
            string p1Str = JsonHelp.strJson<Person>(p1);
            string p2Str = JsonHelp.strJson<Person>(p2);
            string p3Str = JsonHelp.strJson<List<Person>>(new List<Person> { p1, p2 });
            Console.WriteLine(p1Str);
            Console.WriteLine(p2Str);
            Console.WriteLine(p3Str);
            Person pObj1 = JsonHelp.Parse<Person>(p1Str);
            Console.WriteLine(pObj1.GetType().ToString());
            Person pObj2 = JsonHelp.Parse<Person>(p2Str);
            Console.WriteLine(pObj2.GetType().ToString());
            List<Person> pObj3 = JsonHelp.Parse<List<Person>>(p3Str);
            Console.WriteLine(pObj3.GetType().ToString());
            Console.ReadLine();
        }
    }
    [DataContract]
    internal class Person
    {
        [DataMember]
        public string name { get; set; }
        [DataMember]
        public int age { get; set; }
        [DataMember]
        public string[] skillArr { get; set; }
        [DataMember]
        public List<Person> friends { get; set; }
    }
    internal static class JsonHelp
    {
        internal static T Parse<T>(string jsonStr)
        {
            using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr)))
            {
                return (T)new DataContractJsonSerializer(typeof(T)).ReadObject(ms);
            }
        }
        internal static string strJson<T>(T jsonObj)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                new DataContractJsonSerializer(jsonObj.GetType()).WriteObject(ms, jsonObj);
                return Encoding.UTF8.GetString(ms.ToArray());
            }
        }
    }
}

Reproduced in: https: //www.cnblogs.com/zhangchenliang/p/3151506.html

Guess you like

Origin blog.csdn.net/weixin_34129145/article/details/93495398