json简介

时间:2022-07-23
本文章向大家介绍json简介,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

json的书写格式 json语法很简单,也很容易理解,具体如下: 语法规则: 数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JSON 值:

数字(整数或浮点数)字符串(在双引号中)逻辑值(true 或 false)数组(在方括号中)对象(在花括号中)null

JSON 名称/值对

名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值: "firstName" : "John"

JSON 对象:

JSON 对象在花括号中书写:对象可以包含多个名称/值对: { "firstName":"John" , "lastName":"Doe" }

JSON 数组

JSON 数组在方括号中书写:

数组可包含多个对象:

{
"employees": 
[{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" 
}
]}

C# 中json的使用

第一步:
要引用组件(Newtonsoft.Json.dll) 
在 Manager NuGet Package 上安装 Newtonsoft.Json ,在cs 文件中引用
第二步:
引用类
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;//引用此组件时,框架4.0以上版本支持;注意版本支持的范围using Newtonsoft.Json.Converters;

json文件

{"UserName":"admin","UserPassword":"111111","level":1},{"UserName":"user","UserPassword":"111111","level":0}]

代码实例:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;//引用此组件时,框架4.0以上版本支持;注意版本支持的范围
using Newtonsoft.Json.Converters;
using System.IO;

namespace WindowsFormsApp13
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            LoadUsers();
           
        }
         private List<User> Users;
        public class User
        {
            public String UserName { get; set; }
            public String UserPassword { get; set; }
            public int level { get; set; }
        }
         public void LoadUsers()
        {
            Users = new List<User>();          
            //json格式字符串转换为实体类,大括号{}表示对象,[]数组表示列表。              
            //string Jsonsting = File.ReadAllText(jsonfile,Encoding.Default);//加编码,不然乱码                
;
            //读取json方法2               
            //using (StreamReader sr = File.OpenText(jsonfile))                
            //{                
            //    input = sr.ReadToEnd();//json内容                
            //    sr.Close();                
            //}

            String userfile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "users\user.json");
            //string jsonfile = Application.StartupPath + @"config.json";//JSON文件路径

            try
            {
                Users = JsonConvert.DeserializeObject<List<User>>(File.ReadAllText(userfile, Encoding.Default));
                foreach (var item in Users)
                    listBox1.Items.Add(item.UserName);

            }
            catch { }

        }
        void SaveUsers()
        {
            try
            {
                String userfile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "users");
                if (!Directory.Exists(userfile))
                {
                    Directory.CreateDirectory(userfile);
                }

                userfile = Path.Combine(userfile, "user.json");
                string output = JsonConvert.SerializeObject(Users);
                File.WriteAllText(userfile, output);
            }
            catch { }
        }

    }
}

效果: