はじめに:JSONと、多くの場合、実際の開発プロセス、直列化と開発のデシリアライズに対処しなければならないが、必要不可欠なスキルとなっています。このブログは、どのようにJSONシリアライズとデシリアライズされるようにお教えします。
まず、NuGetパッケージ、Newtonsoft.Jsonへの参照を追加し、JSONツールでオブジェクトをシリアライズし、デシリアライズすることができます。もちろん、他の手段によって、これが唯一のケース方法を記載しています。
1. JSON文字列デシリアライズ
文字列 strの= " {\"成功\ ":trueの場合、\" MSG \ ":\"获取成功\ "\ "データ\":[{\ "のid \":0、\ "名前\":\" C#の\は」\ "数値\":\ "A-001 \"、\ "日付\":\ "2019年8月2日\"}、{\ "のID \":1、\ "名\" "日付\" \ "A-002 \" \:\ "数値\" \ "Golang \は" 2、\」: "2019年8月3日\"}、{\ "のID \" \名前\ ":\": ":\ "日付\ "\、" A-003 \ "\"のJava \は数\ "\"である2019年8月4日\"}]} " ;
私たちは、クラスを作成し、この面JSON文字列を解析することができます。
あなたはJSONオブジェクトの明確な構造を見たい場合は、検索エンジンに入力されたJSON JSON文字列をコピーすることができます
ちょうどにJSON文字列の入力は、その構造は非常に明確であることは、上記のいずれかを選択してください
、多くの話を二つのクラスのメッセージを確立していなかった、DATAS
パブリック クラスのメッセージ { パブリック ブール成功{ 取得します。セット; } パブリック 文字列 MSG { 得ます。セット; } パブリックリスト<DATAS>データ{ 得ます。セット; } }
パブリック クラス日付 { public int id { get; set; } public string Name { get; set; } public string Number { get; set; } public string Date { get; set; } }
关键代码:
Message message = JsonConvert.DeserializeObject<Message>(str);
我们可以查看它的详细信息
右键点击message,选择快速监视
此时反序列化已经成功,
2.序列化对象
我们可就Datas类作为序列化的对象
Datas datas = new Datas(); datas.id = 1001; datas.Name = "Object"; datas.Number = "9527"; datas.Date = "2019-07-31";
关键代码: string Serializedata = JsonConvert.SerializeObject(datas);
文本可视化工具查看Serializedata对象:
3.也可对集合进行序列化与反序列化
var DataList = new List<Datas>(); DataList.Add(new Datas { id = 1, Name = "aggregate", Number = "A1", Date = "2019-08-01" }); //序列化 string SerializeDataList = JsonConvert.SerializeObject(DataList);
文本可视化工具查看SerializeDataList对象:
反序列化实体对象集合:
//反序列化实体对象集合 string Data = "[{\"id\":0,\"Name\":\"is C#\",\"Number\":\"A-001\",\"Date\":\"2019-08-02\"},{\"id\":1,\"Name\":\"is Golang\",\"Number\":\"A-002\",\"Date\":\"2019-08-03\"},{\"id\":2,\"Name\":\"is Java\",\"Number\":\"A-003\",\"Date\":\"2019-08-04\"}]"; var DeserializeData = JsonConvert.DeserializeObject<List<Datas>>(Data);
可查看DeserializeData对象其详细信息:
Ok!搞定、
上面我只是列举了一些简单例子,具体的以实际开发为主、