WCF Json应用

原文:http://blog.csdn.net/richnaly/article/details/6540475

<!--[if !supportLists]-->一、<!--[endif]-->JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

<!--[if !supportLists]-->二、<!--[endif]-->定义JSON

[c-sharp] view plain copy print ?
  1. <?xml version="1.0" encoding="utf-8" ?> 
  2. <configuration> 
  3.   <appSettings> 
  4.     <!--业务逻辑Id--> 
  5.     <add key="BusinessMessageList" value="[{BusinessId:'001',Ip:'10.1.20.5',Port:'6001'}]"/> 
  6.   </appSettings> 
  7. </configuration> 

<!--[if !supportLists]-->三、<!--[endif]-->读取配置档JSON

[c-sharp] view plain copy print ?
  1. internal class ServerParameter 
  2.     internal static readonly string BusinessMessageListJSON = GetAppSettings("BusinessMessageList", ""); // 业务逻辑Message服务URI列表 
  3.     internal static List<Dictionary<string, string>> BusinessMessageList = new List<Dictionary<string, string>>(); 
  4.     #region GetAppSettings 
  5.     /// <summary> 
  6.     ///  获取配置Value 
  7.     /// </summary> 
  8.     /// <param name="key"></param> 
  9.     /// <param name="defaultValue"></param> 
  10.     /// <returns></returns> 
  11.     private static string GetAppSettings(string key, string defaultValue) 
  12.     { 
  13.         if (ConfigurationManager.AppSettings[key] == null) 
  14.         { 
  15.             return defaultValue; 
  16.         } 
  17.         else 
  18.         { 
  19.             return ConfigurationManager.AppSettings[key].ToString(); 
  20.         } 
  21.     } 
  22.     #endregion 

四、<!--[endif]-->读取JSON方法定义

[c-sharp] view plain copy print ?
  1. public class JSONHelper 
  2.     #region From JSON 
  3.     /// <summary> 
  4.     /// JSON文本转对象,泛型方法 
  5.     /// </summary> 
  6.     /// <typeparam name="T">类型</typeparam> 
  7.     /// <param name="jsonText">JSON文本</param> 
  8.     /// <returns>指定类型的对象</returns> 
  9.     public static T JSONToObject<T>(string jsonText) 
  10.     { 
  11.         JavaScriptSerializer jss = new JavaScriptSerializer(); 
  12.         try 
  13.         { 
  14.             return jss.Deserialize<T>(jsonText); 
  15.         } 
  16.         catch (Exception ex) 
  17.         { 
  18.             throw new Exception("JSONHelper.JSONToObject(): " + ex.Message); 
  19.         } 
  20.     } 
  21.  
  22.     /// <summary> 
  23.     /// JSON 转List<Dictionary<string, string>> 
  24.     /// </summary> 
  25.     /// <param name="jsonText"></param> 
  26.     /// <returns></returns> 
  27.     public static List<Dictionary<string, string>> JSONToList(string jsonText) 
  28.     { 
  29.         return JSONToObject<List<Dictionary<string, string>>>(jsonText); 
  30.     } 
  31.     #endregion 

<!--[if !supportLists]-->五、<!--[endif]-->控制台输出JSON内容

  

[c-sharp] view plain copy print ?
  1. class Program 
  2.     static void Main(string[] args) 
  3.     { 
  4.         ServerParameter.BusinessMessageList = JSON.JSONHelper.JSONToList(ServerParameter.BusinessMessageListJSON); 
  5.         // 查询BusinessId对应的URI 
  6.         string uri =GetBusinessMessageURI("001"); 
  7.         Console.WriteLine(uri); 
  8.         Console.ReadLine(); 
  9.     } 
  10.     /// <summary> 
  11.     /// 获取业务逻辑层Message服务的URI 
  12.     /// </summary> 
  13.     /// <param name="businessId"></param> 
  14.     /// <returns></returns> 
  15.     internal static string GetBusinessMessageURI(string businessId) 
  16.     { 
  17.         return GetBusinessURI(businessId, ServerParameter.BusinessMessageList, "BusinessMessageService"); 
  18.     } 
  19.     /// <summary> 
  20.     /// 获取业务逻辑层指定服务的URI 
  21.     /// </summary> 
  22.     /// <param name="businessId"></param> 
  23.     /// <param name="businessList"></param> 
  24.     /// <param name="serviceName"></param> 
  25.     /// <returns></returns> 
  26.     internal static string GetBusinessURI(string businessId, List<Dictionary<string, string>> businessList, string serviceName) 
  27.     { 
  28.         string uri = string.Empty; 
  29.         foreach (Dictionary<string, string> dictionary in businessList) 
  30.         { 
  31.             if (dictionary["BusinessId"].ToString().Trim() == businessId.Trim()) 
  32.             { 
  33.                 string ip = dictionary["Ip"].ToString().Trim(); 
  34.                 string port = dictionary["Port"].ToString().Trim(); 
  35.                 uri = "net.tcp://" + ip + ":" + port + "/" + serviceName; 
  36.                 break; 
  37.             } 
  38.         } 
  39.         return uri; 
  40.     } 
 

<!--[if !supportLists]-->六、<!--[endif]-->总结

在WCF的项目应用中,JSON的应用很常见,本文就是其中一种简单的应用.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值