【问题标题】:Convert XML <!CDATA to DataTable C#将 XML <!CDATA 转换为 DataTable C#
【发布时间】:2020-07-21 12:45:50
【问题描述】:

我有将 Json 作为输入参数的 Webservice SOAP 方法。

//For sample
string jsonString = "[{"Year":"2020","UserId":"1","Comp":"20","DeptId":"32","CategoryId":"53","ItemId":"0"}]";

string[] processString = budget.BudgetTagNet(jsonString);

现在“budget.BudgetTagNet(jsonString)”返回前面提到的字符串数组,并且 SOAP 响应显示以下值: SOAP RESPONSE RESULT

现在我想将返回的预算数组转换为 DataTable 以供我的项目进一步使用,但我做不到。实现这一目标的最佳方法是什么。我尝试过的方法如下所述。

 string jsonString = CommonEnum.DataTableToJSON(Table);
 err.Message = "Json String is : " + jsonString;
 err.Insert();

 string[] processString = budget.BudgetTagNet(jsonString);
                    err.Message = "Budget service data is : " + processString[1];
                    err.Insert();

                    var XMLAsString = CommonEnum.SerializeXML(processString[1]);
                    err.Message = "Converted XML To String data is : " + 
   JsonConvert.SerializeObject(XMLAsString);
                    err.Insert();

                    dt = (DataTable) JsonConvert.DeserializeObject(XMLAsString, (typeof(DataTable)));
                    err.Message = "DataTable data : " + JsonConvert.SerializeObject(dt);
                    err.Insert();

最后按照上述方法插入数据库的数据是: Database values inserted

【问题讨论】:

    标签: c# asp.net-mvc soap datatable xml-to-json


    【解决方案1】:

    您可以使用正则表达式来解析数据:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    
    namespace ConsoleApplication11
    {
        class Program
        {
            static void Main(string[] args)
            {
                string input =  "{\"Budkey\":2,\"BudTitle\":\"Budget Heads\", \"Budget_Amount\":0.0,\"Engaged\":0.0,\"Balance\":0.0";
                string pattern = @"""(?'key'[^""]+)"":(?'value'\w+)";
                MatchCollection matches = Regex.Matches(input, pattern);
    
                foreach (Match match in matches.Cast<Match>().Select(x => x))
                {
                    Console.WriteLine("Key = '{0}', Value = '{1}'", match.Groups["key"].Value, match.Groups["value"].Value);
                }
                Console.ReadLine();
     
    
            }
        }
     
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 2014-01-03
      • 2013-11-11
      相关资源
      最近更新 更多