实际上,问题不在于如何去做,而在于是否是设计错误。我很担心,因为我已经阅读了很多关于在 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);
它就像一个魅力!问题是:这是否令人不悦?这会在未来以某种方式导致头痛吗?