对于RESTful服务,用XML表示List的最佳方式是什么,以便更容易进行反序列化
本文关键字:是什么 更容易 反序列化 方式 服务 RESTful XML 表示 对于 List 最佳 | 更新日期: 2023-09-27 18:28:58
我使用两种编程语言:Java和C#,这两种语言通过RESTful服务进行通信。在Java中,我为C#程序发出的请求发送了一些XML,GET的响应包括一些列表结构。
<X>
<A>[3, 18, 11, 8, 19, 6]</A>
</X>
<X>
<A>[3, 18, 11, 8, 19, 6]</A>
</X>
我很难将字符串解析回列表中,虽然不是很难,但非常手动。我所做的是:
public RoutingResults(String A)
{
A = A.Replace("[", "");
A = A.Replace("]", "");
A = A.Replace(" ", "");
String[] As = A.Split(new String[] {","}, StringSplitOptions.RemoveEmptyEntries);
this.A = new List<string>();
foreach (String ax in As)
{
this.As.Add(ax);
}
}
我觉得上面的代码很有趣,你不这么认为吗?如果有一天有人侵入我的电脑,知道我必须用这种方式编码,我会感到很尴尬。哈哈。
所以我的问题是,尤其是对于那些对RESTful、REST世界和XML有经验的人来说,任何技术都在这一部分;在REST的XML中表示列表的理想方式是什么,以后反序列化也是理想的。请给出一些代码来举例说明,无论是在C#还是Java中。
如果我必须发送这样的回复:
<X>
<A>
<as>3</as>
<as>18</as>
<as>11</as>
<as>8</as>
<as>19</as>
<as>6</as>
<A>
</X>
我认为发送类似上述格式的数据会对性能造成影响;相比之下,如果数据格式整齐,只是典型java.util.List的.toString表示。你不这么认为吗?
老实说,我不会说原始代码有太多错误。它完成了任务,只有几行,而且它是如何完成的很清楚。你可以把最后一位改为:
this.A = new List<string>(As);
因为CCD_ 1的构造函数能够将数组作为输入并自动填充自身。
您还可以考虑将其作为JSON数组发送,这将是类似的,并且不会涉及大量额外的XML标记。请参阅将json字符串中的数组转换为列表。