首页 > 编程语言 >C# JSON简单测试

C# JSON简单测试

时间:2023-04-21 16:01:00浏览次数:32  
标签:Console 测试 C# System myList JSON WriteLine using Name

 1 using Newtonsoft.Json;
 2 using System;
 3 using System.Collections.Generic;
 4 using System.IO;
 5 using System.Text.Json.Serialization;
 6 
 7 namespace TestJSON
 8 {
 9     internal class Program
10     {
11         static void Main(string[] args)
12         {
13             Console.WriteLine("读取 data.json");
14             string jsonString = File.ReadAllText("data.json");
15             List<Item> myList = JsonConvert.DeserializeObject<List<Item>>(jsonString);
16             if (myList == null)
17             {
18                 myList = new List<Item>();
19             }
20             string input = "0";
21             int inputInt = 0;
22             string inputString = "";
23             while (input != "q")
24             {
25                 Console.WriteLine("按'a'加项");
26                 Console.WriteLine("按'd'加项");
27                 Console.WriteLine("按's'加项");
28                 Console.WriteLine("按'q'加项");
29                 Console.WriteLine("按空格:");
30                 input = Console.ReadLine().ToLower();
31                 switch (input)
32                 {
33                     case "a":
34                         Console.WriteLine("新加一项");
35                         Console.WriteLine("输入要增加名字:");
36                         inputString = Console.ReadLine();
37                         Console.WriteLine("请输入价格");
38                         inputInt = Convert.ToInt32(Console.ReadLine());
39                         myList.Add(new Item(inputString, inputInt));
40                         Console.WriteLine("新增加"+inputString+"价格"+inputInt);
41                         break;
42                     case "d":
43                         Console.WriteLine("删除一项");
44                         Console.WriteLine("输入要删除名字:");
45                         inputString = Console.ReadLine();
46                         myList.Remove(new Item(inputString));
47                         break;
48                     case "s":
49                         Console.WriteLine("\n 显示每项");
50                         foreach (var item in myList)
51                         {
52                             Console.WriteLine("Item:"+item.Name+"|$"+item.Price);
53                         }
54                         Console.WriteLine("\n");
55                         break;
56                     case "q":
57                         Console.WriteLine("退出");
58                         break;
59                     default:
60                         Console.WriteLine("重新测试"); 
61                         break;
62                 }
63             }
64             Console.WriteLine("开始写入 data.Json");
65             string data= JsonConvert.SerializeObject(myList);
66             File.WriteAllText("data.json",data);
67             Console.WriteLine("写入完成");
68         }
69     }
70 }
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Text;

namespace TestJSON
{
    public class Item : IEquatable<Item>
    {
        public string Name;
        public int Price;

        public Item(string name, int price =0)
        {
            this.Name = name;
            this.Price = price;
        }
        public bool Equals(Item other)
        {
            if (other == null) return false;
            return Name.Equals(other.Name);

        }
    }
}

[{"Name":"ham","Price":1000000},{"Name":"huotuo","Price":20},{"Name":"xiao","Price":1},{"Name":"binggan","Price":12}]

标签:Console,测试,C#,System,myList,JSON,WriteLine,using,Name
From: https://www.cnblogs.com/ZhongXingxing/p/17340706.html

相关文章

  • dedecms 实现ctrl+v粘贴图片并上传、word粘贴带图片
    ​图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.js,找到UM.plugins['autoupload'],然后找到autoUploadHandler方法,注释掉其中的代码。加入下面的代码://判断剪贴......
  • Java Selenium4 ChromeDriver获取指定的POST请求
    前言最近项目上需要去找某个网站对应的请求数据,但是这个网站有个奇怪的反爬机制,你如果直接去请求这个url(listPro)是获取不到数据的,它会返回一段加密后的js代码过来,如果在浏览器上执行也不行,需要在这个网站上执行,这段代码主要是加密设置一个cookie,我在浏览器上复制这个cookie后,可以......
  • C#一个界面类下面有多个CS文件
    一.当我们用VS创建一个Form窗体时,会生成一个窗体类和设计类 二.当界面复杂,并且每个界面有多少关联的类时,我们需要按一定规则放,可以放在该窗体下面打开.csproj文件,增加一个修改FormSub1和Form2Sub2的Compile节点(如果没有,直接增加)修改后,保存,重新用VS打开项目(VS2010和VS201......
  • C# 数组输出拼接字符串以及拼接字符串转数组
    staticvoidTest(){int[]arr=newint[]{1,2,3,4,5,6};stringstr=string.Join(",",arr);//数组转拼接字符串int[]arr_new=Array.ConvertAll(str.Split(','),p=>Convert.ToInt32(p));......
  • Mac 程序坞跑到副屏
    第一种直接拔掉拓展线但是麻烦影响体验先隐藏后锁定control+option+D隐藏程序坞鼠标回到主屏幕下方显示程序坞control+option+D显示程序坞......
  • 数据类型和SpringMvc
    1.Java的八种数据类型和各自取值范围?byte 1      float 4short 2     double 8int 4       boolean true/falselong 8      char  2 2.String属于基本类型吗?String的常用API?string属于Java中的字符串类型,也是一个引用类型,并不属......
  • C#监控usb设备插拔--已经测试
    WindowsFormsApp---USBDevicefind监听usb插拔代码:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.IO;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingS......
  • Approximation Theory and Method ch7
    ApproximationTheoryandMethodch7part1,part2,part3,ch7,命名乱了——致敬微软...asthesignof\(p(x)\).Itfollowsthat\(p^{*}\)isabestminimaxapproximationfrom\(\mathscr{A}\)to\(f\)ifthereisnofunction\(p\)in\(\mathscr{A}\)......
  • class(类)
    Class类学习学习类,以及类的有关方法,都基本到了这门语言语法的末尾章节了。类相较于其他知识点也是比较难理解的。如构造方法,类的继承,多态。1,类的构造方法1,构建类的方法的时候会自动执行2,构建类对象的传参会传递给构造方法3,构造方法可以给类的成员变量赋值写法......
  • Flink启动报错:/bin/config.sh: line 32: syntax error near unexpected token
    flink启动报错xxx@ssss:/xxx/flink-1.15.2/bin>shstart-cluster.sh/xxx/flink-1.15.2/bin/config.sh:line32:syntaxerrornearunexpectedtoken`<'/xxx/flink-1.15.2/bin/config.sh:line32:`done<<(find"$FLINK_LIB_DIR"!-ty......