什麼是JSON?
JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write and easy for machines to parse and generate. JSON is a text format that is completely language independent.
翻譯:Json【javascript物件表示方法】,它是一個羽量級的資料交換格式,我們可以很簡單的來讀取和寫它,並且它很容易被電腦轉化和生成,它是完全獨立於語言的
Json有下面幾種表現形式
C#序列化和反序列化的第一種方式:使用JavaScriptSerializer類
首先要加入參考 System.Web.Extensions
using System.Web.Script.Serialization;
今天是用 主控台應用程式 做示範
首先宣告一個字定義的物件
Student stu = new Student()
{
ID = 1,
Name = "孔子",
Age = 2000,
Sex = "男"
};
序列化的方式
JavaScriptSerializer js = new JavaScriptSerializer();
string jsonData = js.Serialize(stu);//序列化
Console.WriteLine(jsonData);
反序列化的方式1
string desJson = jsonData;
Student model = js.Deserialize<Student>(desJson);// //反序列化
string message = string.Format("ID={0},Name={1},Age={2},Sex={3}", model.ID, model.Name, model.Age, model.Sex);
反序列化的方式2
string desJson = jsonData;
dynamic modelDy = js.Deserialize<dynamic>(desJson); //反序列化
string messageDy = string.Format("動態的反序列化,ID={0},Name={1},Age={2},Sex={3}",
modelDy["ID"], modelDy["Name"], modelDy["Age"], modelDy["Sex"]);//這裡要使用索引取值,不能使用物件.屬性
以下是完整的程式碼:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Script.Serialization;
namespace ConsoleTest2
{
class Student
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Sex { get; set; }
}
class Program
{
static void Main(string[] args)
{
Student stu = new Student()
{
ID = 1,
Name = "孔子",
Age = 2000,
Sex = "男"
};
JavaScriptSerializer js = new JavaScriptSerializer();
string jsonData = js.Serialize(stu);//序列化
Console.WriteLine(jsonData);
////反序列化方式一:
string desJson = jsonData;
//Student model = js.Deserialize<Student>(desJson);// //反序列化
//string message = string.Format("ID={0},Name={1},Age={2},Sex={3}", model.ID, model.Name, model.Age, model.Sex);
//Console.WriteLine(message);
//Console.ReadKey();
////反序列化方式2
dynamic modelDy = js.Deserialize<dynamic>(desJson); //反序列化
string messageDy = string.Format("動態的反序列化,ID={0},Name={1},Age={2},Sex={3}",
modelDy["ID"], modelDy["Name"], modelDy["Age"], modelDy["Sex"]);//這裡要使用索引取值,不能使用物件.屬性
Console.WriteLine(messageDy);
Console.ReadKey();
}
}
}
執行畫面