将WebResponse字符串解密为数组列表



网站上有一个PHP脚本。我还有一个C#winforms程序,它使用WebRequest/WebResponse方法发送POST消息。

这个PHP脚本连接到mysql数据库,获取一些数据并将其发送回WinForms应用程序。数据格式如下:

约翰,32岁,可能是

Peter,6月24日

等等。。

所有这些文本都作为单个字符串发送将这个字符串解码为字符串列表的最佳方法是什么[]

现在我正在使用一种自制的方法。PHP脚本执行以下操作:

  • 首先我们用","分隔每个单词

  • 然后我们用"|"分隔每一行

当我收到消息时,我用"|"字母将其分成一个列表

List<string> names = input.Split('|').ToList<string>();

然后我将列表中的每个字符串进行划分:

List<string[]> namestwo = new List<string[]>();
foreach (string str in names)
{
string[] sep = str.Split(',').ToArray();
namestwo.Add(sep);
}

我想有更好的方法可以做到这一点。

您的通用方法很好。像这样发送数据时使用分隔符是很常见的。显然,您需要确保数据中永远不会有任何逗号(",")或管道("|"),或者正确地转义这些字符,然后在解析时正确处理。如果你发现自己有很多逗号或管道,你可以考虑使用其他分隔符(制表符是一个很好的选择,因为你通常可以用几个空格代替数据中的所有制表符,而不是转义它们)。

如果你想的话,你可以稍微清理一下代码。这样的东西对我来说看起来更好,但它从根本上会做同样的事情:

var result = input.Split('|')
             .Select(line => line.Split(',').ToList()).ToList();

最新更新