分享

json简介

 ontheroad96j47 2021-11-08

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 { } }
}}

效果:

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多