从PHP向Web服务发送HashMap参数

Fed*_*ina 5 php java web-services hashmap nusoap

实际上,问题在于如何做,而是如果这是一个设计错误.我很担心,因为我已经阅读了很多关于在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>();
Run Code Online (Sandbox Code Playgroud)

以及从此类接收实例的服务.然后从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);
Run Code Online (Sandbox Code Playgroud)

它就像一个魅力!问题是:这不赞成吗?这会在某种程度上导致未来的头痛吗?

bla*_*lah 1

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

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

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