5

实际上,问题在于如何去做,而在于是否是设计错误。我很担心,因为我已经阅读了很多关于在 WS 中仅使用标准数据类型的内容。但是,我在实现一个接收 HashMap 并使用 nuSoap 从 PHP 填充该参数时没有问题。

我有一个带有这个成员的ParameterBean类(当然还有 getter 和 setter),其中包括一个 HashMap。

private int ID;
private String value;
private String name;
private HashMap<Integer, String> map = new HashMap<Integer, String>();

以及从此类接收实例的服务。然后从我调用的 PHP 客户端:

$map = array(1 => 'Foo', 2 => 'Bar');
$paramsp = array(
    'ID' => '1',
    'value' => 'Some Value',
    'name' => 'A Name',
    'map' => $map
);
$params = array($paramsp);
$resp = $client->call('test',$params);
print_r($client->response);

它就像一个魅力!问题是:这是否令人不悦?这会在未来以某种方式导致头痛吗?

4

1 回答 1

1

HashMap 是一种非常标准的数据类型,在 Web 服务中使用时应该不会出现问题。

如您所见,PHP 和 Java 处理哈希映射都没有问题。 JSON支持它们(尽管它们被称为“对象”,并且没有 Java 的显式类型)。

虽然真正深奥的数据类型可能会导致预期可广泛互操作的 Web 服务出现问题,但哈希映射不属于该类别,应该放心使用。

于 2012-07-31T00:59:01.490 回答