1

我使用两种编程语言: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# xor 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 表示。你不这么认为吗?

4

1 回答 1

0

老实说,我不会说原始代码有很多错误。它完成了这项工作,它只有几行,而且很清楚它是如何做到的。您可以将最后一位更改为:

this.A = new List<string>(As);

...因为构造函数List<T>能够将数组作为输入并自动填充自身。

您还可以考虑将其作为 JSON 数组发送,这将是类似的并且不会涉及很多额外的 XML 标记。请参阅将 json 字符串中的数组转换为列表

于 2013-08-24T19:00:29.530 回答