• 通用Json的处理办法


    1、Json的格式:

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

    2、通用处理Json对象的C#类:DataContractJsonSerializer,命名空间:System.Runtime.Serialization.Json;

    3、用一个控制台来显示,代码如下:

    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());
                }
            }
        }
    }

  • 相关阅读:
    PS教程:合成复古人物风格海报的技巧
    配色那么差,还不‘哥屋恩’去看电影!
    中国最贵海报设计师!黄海究竟凭什么?
    这才叫会PS,普通照片分分钟P成好莱坞海报!
    安装ADOBE全系列软件的步骤
    UI设计教程:几步教你如何创建一个漂亮又好吃的饼干
    Design and Analysis of Algorithms_Brute Froce
    Design and Analysis of Algorithms_Fundamentals of the Analysis of Algorithm Efficiency
    Design and Analysis of Algorithms_Introduction
    从顺序查找窥探平均时间复杂度分析的一般化方法
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/3151506.html
Copyright © 2020-2023  润新知