C# 将MSMQ消息转换成Json格式 【优化】
转换函数:
private string ConvertToJSON(string label, string body) { //TODO: convert to json string[] Lablelist = label.Split('|'); string[] Bodylist = body.Split('|'); string JsonStr = "{\""; NameValueCollection nvc = (NameValueCollection)ConfigurationManager.GetSection("LableName"); foreach (string key in nvc.AllKeys) { JsonStr = JsonStr + nvc[key] + "\":\"" + Lablelist[Convert.ToInt32(key)-1] + "\",\""; } NameValueCollection nvd = (NameValueCollection)ConfigurationManager.GetSection("BodyName"); foreach (string key in nvd.AllKeys) { JsonStr = JsonStr + nvd[key] + "\":\"" + Bodylist[Convert.ToInt32(key) - 1] + "\",\""; } JsonStr = JsonStr.Remove(JsonStr.Length - 2, 2)+"}"; Console.WriteLine(JsonStr); return JsonStr; }配置文件:
> <configuration> <configSections> <section name="LableName" type="System.Configuration.NameValueSectionHandler"/> <!--以NameValue键值/对的形式返回配置节中的信息--> <section name="BodyName" type="System.Configuration.NameValueSectionHandler"/> <!--以Dictionary字典键值对的形式返回配置节中的信息--> </configSections> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <LableName> <add key="1" value="MessageID"/> <add key="2" value="SendingBaseTag"/> <add key="3" value="SendingMachineName"/> <add key="4" value="MessageQueuePathName"/> <add key="5" value="CustomField1"/> <add key="6" value="CustomField2"/> </LableName> <BodyName> <add key="1" value="DataMode"/> <add key="2" value="DataModeID"/> <add key="3" value="ExperimentID"/> <add key="4" value="BasePenType"/> <add key="5" value="BasePenTypeID"/> <add key="6" value="MID"/> <add key="7" value="StationTag"/> <add key="8" value="DateTime"/> <add key="9" value="Path1"/> <add key="10" value="EquipmentID1"/> <add key="11" value="Path2"/> <add key="12" value="EquipmentID2"/> </BodyName> </configuration>
Thank you!