zoukankan      html  css  js  c++  java
  • 通用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());
                }
            }
        }
    }

  • 相关阅读:
    多表查询
    合并查询与连接查询区别
    union 合并查询语法
    外连接查询left join on 左连接 right join on 右连接
    inner join on 三表查询四表查询5表查询不管多少表都可以
    INEER JOIN..ON两表查询例子
    sql server 三表查询
    两表查询语句
    内连接查询
    转:Exchange Server 2013 一步步安装图解
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/3151506.html
Copyright © 2011-2022 走看看