0

Java ファイルと php ファイルを含むアプリを開発しています。Java ファイルは php ファイルを呼び出します。これらは ddbb でクエリを実行し、結果を配列 php として返しますが、画面に出力します。これをJavaで文字列のように取り、配列またはコレクションに変換する必要がありますが、その方法がわかりません。

php が出力する結果の例は次のとおりです。

Array
(
[0] => Array
    (
        [id] => 1
        [0] => 1
        [name] => pepe
        [1] => pepe
    )

[1] => Array
    (
        [id] => 2
        [0] => 2
        [name] => antoñito
        [1] => antoñito
    )

[2] => Array
    (
        [id] => 3
        [0] => 3
        [name] => loló
        [1] => loló
    )

[3] => Array
    (
        [id] => 4
        [0] => 4
        [name] => ñoño
        [1] => ñoño
    )

[4] => Array
    (
        [id] => 5
        [0] => 5
        [name] => Antoñito
        [1] => Antoñito
    )

[5] => Array
    (
        [id] => 7
        [0] => 7
        [name] => José
        [1] => José
    )

)

json_encode($the_array) を使用すると、結果は次のようになります。

[{"id":"1","0":"1","name":"pepe","1":"pepe"},    {"id":"2","0":"2","name":"anto\u00f1ito","1":"anto\u00f1ito"},{"id":"3","0":"3","name":"lol\u00f3","1":"lol\u00f3"},{"id":"4","0":"4","name":"\u00f1o\u00f1o","1":"\u00f1o\u00f1o"},{"id":"5","0":"5","name":"Anto\u00f1ito","1":"Anto\u00f1ito"},{"id":"7","0":"7","name":"Jos\u00e9","1":"Jos\u00e9"}]

みんな、ありがとう

4

3 に答える 3

5

データのシリアル化方法を選択する必要があります。たとえば、XML、プロトコルバッファ、JSONなどです。

個人的には、JSONを使用することをお勧めします。これは、JSONが軽量で、人間でも読みやすく、両方の言語で利用できるライブラリが豊富に用意されているためです。

PHP側でのエンコーディング

$encoded = json_encode($data);

ジャクソンによるJava側でのデコード

final ObjectMapper objectMapper = new ObjectMapper();
// the better way is to create a custom class with the correct format
final Map<?, ?> decoded = objectMapper.readValue(encoded, Map.class);
于 2012-06-19T08:58:18.780 に答える
2

JSONなど、より標準化されたトランスポート形式を使用します。PHP側はを使用して配列をエンコードするjson_encode()必要があり、Java側はそれをデコードするためのライブラリが必要です(関連する質問を参照)。

于 2012-06-19T08:57:13.283 に答える
1

これは便利だと思いますhttp://publib.boulder.ibm.com/infocenter/wsmashin/v1r1/index.jsp?topic=/com.ibm.websphere.sMash.doc/using/zero.php/TypeConversion。 html

于 2012-06-19T08:55:34.357 に答える