[英]Convert XML <!CDATA to DataTable C#
I have Webservice SOAP method which takes Json as input argument.我有 Webservice SOAP 方法,它将 Json 作为输入参数。
//For sample
string jsonString = "[{"Year":"2020","UserId":"1","Comp":"20","DeptId":"32","CategoryId":"53","ItemId":"0"}]";
string[] processString = budget.BudgetTagNet(jsonString);
Now "budget.BudgetTagNet(jsonString)" returns Array of string as mentioned and the SOAP Response shows following value: SOAP RESPONSE RESULT现在“budget.BudgetTagNet(jsonString)”返回前面提到的字符串数组,并且 SOAP 响应显示以下值: SOAP 响应结果
Now I want to convert the returned budget array to DataTable for further utilization for my project but I am unable to do.现在我想将返回的预算数组转换为 DataTable 以进一步用于我的项目,但我做不到。 What could be the best way to achieve that.实现这一目标的最佳方法是什么。 What I have tried so is mentioned below.我尝试过的方法如下所述。
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();
And finally Data inserted in database as for the above method is: Database values inserted最后插入数据库中的数据,如上述方法是:插入的数据库值
You can use Regex to parse data:您可以使用正则表达式来解析数据:
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();
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.