实际上,问题不是如何去做,而是如果它是一个设计错误。我很担心,因为我已经阅读了很多关于在 WS 中仅使用标准数据类型的内容。但是,我在实现一个接收 HashMap 并使用 nuSoap 从 PHP 填充该参数的过程中没有遇到任何问题。
我有一个包含这些成员(当然还有 getter 和 setter)的 ParameterBean 类,其中包括一个 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);
它就像一个魅力!问题是:这是不受欢迎的吗?这会以某种方式导致将来头痛吗?
最佳答案
HashMap 是一种非常棒的标准数据类型,在 Web 服务中使用时应该不会出现任何问题。
如您所见,PHP 和 Java 都可以轻松处理散列映射。 JSON支持它们(尽管它们被称为“对象”,并且没有 Java 的显式类型)。
虽然真正深奥的数据类型可能会给预期可广泛互操作的 Web 服务带来问题,但 HashMap 不属于该类别,应该放心使用。
关于java - 从 PHP 向 Web 服务发送 HashMap 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11689741/