zoukankan      html  css  js  c++  java
  • Json和类之间的转化

    如题

    很多时候使用牛顿软件(Newtonsoft.Json)。项目中的添加方式是使用NuGet,具体操作简单,此处略(实在不会,网上一抓一大把)

    序列化和反序列化,仅以下例说明:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Newtonsoft.Json;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                MyMessage msg = new MyMessage("Hello World");
                Letter letter = new Letter(), 反序列化1;
                letter.From = "重庆";
                letter.To = "安徽";
                letter.myMessage = msg;
    string json_s1= JsonConvert.SerializeObject(letter); 反序列化1 = JsonConvert.DeserializeObject<Letter>(json_s1);
    Console.WriteLine(json_s1); 反序列化1.showme(); Console.ReadKey(); } }
    class MyMessage { public int Status { get; set; } public int Lenth { get; set; } public string Msg { get; set; } public MyMessage(string m,int s=1) { Status = s; Msg = m; Lenth = Msg is null?0:Msg.Length; } public override string ToString() { return $"The status is {Status},The lenth = {Lenth},The content is {Msg}"; } } class Letter { public string From { get; set; } public string To { get; set; } public MyMessage myMessage; public void showme() { Console.WriteLine($"This letter come from {From},and go to {To}.It is said that:{myMessage.ToString()}"); } } }

    运行结果:

    {"myMessage":{"Status":1,"Lenth":11,"Msg":"Hello World"},"From":"重庆","To":"安徽"}
    This letter come from 重庆,and go to 安徽.It is said that:The status is 1,The lenth = 11,The content is Hello World
    

      


    例: 基于网络的五子棋对战程序,客户端和服务器消息格式设计(行棋)

    enum MyFlag
        {
            set,
            ok,
            error
        }
        class MyMsg
        {
            public MyFlag myFlag;
            public int i, j, c;
            public MyMsg(MyFlag f, int hang, int lie, int set_color)
            {
                myFlag = f;
                i = hang;
                j = lie;
                c = set_color;
            }
        }

    其中myFlag表示和服务器通讯的操作,枚举型,分为发送给服务器(set),收到服务器成功消息(ok),收到服务器失败消息(error)

    i、j、c分别表示发送给服务器的(和服务器返回的)落子位置和颜色。

    结合之前的tcp网络编程知识,试开发出完全的消息模式及程序。程序大致如下:

    注:棋盘图形部分可以用Graphics对象在表单上直接画图(画圆、画矩形、画直线),上学期windows项目开发,自画报表里讲过。查点资料,略作修改即可。

  • 相关阅读:
    Insert into a Binary Search Tree
    Search in a Binary Search Tree
    Binary Search Tree Iterator
    Validate Binary Search Tree
    Serialize and Deserialize Binary Tree
    图的搜索
    codeforce vk cup2017
    hdu1160dp
    完全背包hdu1114
    最长递增子序列hdu1087
  • 原文地址:https://www.cnblogs.com/wanjinliu/p/12833149.html
Copyright © 2011-2022 走看看