C#JSONとオブジェクト間の相互変換を実現する機能例
4474 ワード
この例では,C#実装JSONとオブジェクト間の相互変換機能について述べる.皆さんの参考にしてください.具体的には以下の通りです.
1.まず宣言ユーザ情報オブジェクト,DataContract修飾クラスはJSON,DataMember修飾属性,Orderは解析の順序,またLoverは配列リスト,ガールフレンド個数を表す
Addressは配送先、DailyRecordは日常記録
2.JSONヘルプクラスコアコード
3.呼び出し
4.逆シーケンス化の結果
PS:json操作について、ここではいくつかの実用的なjsonオンラインツールをお勧めします.
オンラインJSONコード検査、検査、美化、フォーマットツール:http://tools.jb51.net/code/json
JSONオンラインフォーマットツール:http://tools.jb51.net/code/jsonformat
オンラインXML/JSON相互変換ツール:http://tools.jb51.net/code/xmljson
jsonコードオンラインフォーマット/美化/圧縮/編集/変換ツール:http://tools.jb51.net/code/jsoncodeformat
オンラインjson圧縮/エスケープツール:http://tools.jb51.net/code/json_yasuo_trans
さらに、C#については、「C#文字列操作テクニックまとめ」、「C#よくあるコントロール使い方チュートリアル」、「WinFormコントロール使い方まとめ」、「C#プログラム設計のスレッド使用テクニックまとめ」、「C#中XMLファイル操作テクニックまとめ」、「C#データ構造とアルゴリズムチュートリアル」、「C#配列操作テクニックまとめ」および「C#オブジェクト向けプログラミング入門チュートリアル」
本稿で述べたことが皆さんのC#プログラム設計に役立つことを願っています.
1.まず宣言ユーザ情報オブジェクト,DataContract修飾クラスはJSON,DataMember修飾属性,Orderは解析の順序,またLoverは配列リスト,ガールフレンド個数を表す
Addressは配送先、DailyRecordは日常記録
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
namespace FunctionTest.Model
{
[DataContract]
public class UserInfo
{
[DataMember(Order =0)]
public string UserName { get; set; }
[DataMember(Order = 1)]
public int Age { get; set; }
[DataMember(Order = 2)]
public int Gender { get; set; }
[DataMember(Order =3)]
public List Lover { get; set; }
[DataMember(Order = 4)]
public ContactAddress Address { get; set; }
[DataMember(Order = 5)]
public Dictionary DailyRecord {
get; set;
}
}
[DataContract]
public class ContactAddress
{
[DataMember(Order =0)]
public string Province { get; set; }
[DataMember(Order = 1)]
public string City { get; set; }
[DataMember(Order = 2)]
public string Country { get; set; }
[DataMember(Order = 3)]
public string Details { get; set; }
}
}
2.JSONヘルプクラスコアコード
///
/// Json
///
///
///
///
public static T JsonToObject(string jsonText)
{
DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonText));
T obj = (T)s.ReadObject(ms);
ms.Dispose();
return obj;
}
///
/// JSON
///
///
///
///
public static string ObjectToJSON(T obj)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
string result = string.Empty;
using (MemoryStream ms = new MemoryStream())
{
serializer.WriteObject(ms, obj);
ms.Position = 0;
using (StreamReader read = new StreamReader(ms))
{
result = read.ReadToEnd();
}
}
return result;
}
3.呼び出し
//1. -->JSON
UserInfo info = new UserInfo
{
Age = 10,
Gender = 1,
UserName = " ",
Lover = new List { " 1", " 2", " 3" },
Address = new ContactAddress
{
Province = " ",
City = " ",
Country = " ",
Details = " "
},
DailyRecord = new Dictionary { { " ", " " }, { " ", " " }, { " ", " " } }
};
string json = ObjectToJSON(info);
4.逆シーケンス化の結果
{"UserName":" ","Age":10,"Gender":1,"Lover":[" 1"," 2"," 3"],"Address":{"Province":" ","City":" ","Country":" ","Details":" "},"DailyRecord":[{"Key":" ","Value":" "},{"Key":" ","Value":" "},{"Key":" ","Value":" "}]}
PS:json操作について、ここではいくつかの実用的なjsonオンラインツールをお勧めします.
オンラインJSONコード検査、検査、美化、フォーマットツール:http://tools.jb51.net/code/json
JSONオンラインフォーマットツール:http://tools.jb51.net/code/jsonformat
オンラインXML/JSON相互変換ツール:http://tools.jb51.net/code/xmljson
jsonコードオンラインフォーマット/美化/圧縮/編集/変換ツール:http://tools.jb51.net/code/jsoncodeformat
オンラインjson圧縮/エスケープツール:http://tools.jb51.net/code/json_yasuo_trans
さらに、C#については、「C#文字列操作テクニックまとめ」、「C#よくあるコントロール使い方チュートリアル」、「WinFormコントロール使い方まとめ」、「C#プログラム設計のスレッド使用テクニックまとめ」、「C#中XMLファイル操作テクニックまとめ」、「C#データ構造とアルゴリズムチュートリアル」、「C#配列操作テクニックまとめ」および「C#オブジェクト向けプログラミング入門チュートリアル」
本稿で述べたことが皆さんのC#プログラム設計に役立つことを願っています.