C#実装Stringタイプとjson間の相互変換機能例

2439 ワード

この例では,C#実装Stringタイプとjson間の相互変換機能について述べる.皆さんの参考にしてください.具体的には以下の通りです.

////Donet2.0       
//          Json 
public static string ObjectToJson(object obj)
{
   return JavaScriptConvert.SerializeObject(obj);
}
//    Json       
public static object JsonToObject(string jsonString,object obj)
{
   return JavaScriptConvert.DeserializeObject(jsonString, obj.GetType());
}
//Donet3.5   DLL  json 
//    :System.Runtime.Serialization,System.ServiceModel.Web


コード#コード#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
namespace CrjIIOfflineAccept.CrjIITools
{
  public class JsonTools
  {
    //          Json 
    public static string ObjectToJson(object obj)
    {
      DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
      MemoryStream stream = new MemoryStream();
      serializer.WriteObject(stream, obj);
      byte[] dataBytes = new byte[stream.Length];
      stream.Position = 0;
      stream.Read(dataBytes, 0, (int)stream.Length);
      return Encoding.UTF8.GetString(dataBytes);
    }
    //    Json       
    public static object JsonToObject(string jsonString, object obj)
    {
      DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
      MemoryStream mStream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
      return serializer.ReadObject(mStream);
    }
  }
}


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#プログラム設計に役立つことを願っています.