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项目开发,自画报表里讲过。查点资料,略作修改即可。

原文地址:https://www.cnblogs.com/wanjinliu/p/12833149.html