5

実際、問題はそれを行う方法ではなく、設計ミスである場合です。WS で標準データ型のみを使用することについて多くのことを読んだので、私は心配しています。ただし、HashMap を受け取るものを実装し、PHP からそのパラメーターを nuSoap で埋めることに問題はありませんでした。

HashMap を含むこのメンバー (もちろんゲッターとセッターも) を持つParameterBeanクラスがあります。

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 に答える