我正在研究一個課程,我嘗試將一個數組從php'client'傳遞給java'server'。我在php中創建一個數組,使用json_encode對其進行編碼,然後使用StringVariable.readLine()在服務器站點上接收它。 我的問題:通過網絡將json_encode數組傳遞給java
php數組的值被作爲java中數組的一個值接收。請看看代碼和輸出。
PHP - 如 '發送方'
$array = array("foo", "bar", "hallo", "world");
$array2 = json_encode($array);
//var_dump($array);
$socket = fsockopen($server, $port, $eN, $eS);
if ($socket)
{
fwrite($socket, $array2);
爪哇 - 如 '接收器'
BufferedReader in = new BufferedReader(new InputStreamReader(socket1.getInputStream()));
while ((in1 = in.readLine()) != null)
{
String[] Decoder = {in1};
System.out.println(Arrays.asList(Decoder));
結果
[[ 「foo」 的, 「酒吧」 ,「hallo」,「world」]]
我總是尋找一種解決方案,我通過我的局域網將數組從PHP傳遞到JAVA。任何解決方案將是偉大的..我也試過serialize()和我收到的是
[a:4:{i:0; s:3:「foo」; i:1; s:3 :「bar」; i:2; s:5:「hallo」; i:3; s:5:「world」;}]
幫助會大大提高!謝謝!
提示:在接收端增加一個JSON解碼器。到目前爲止,你把它當作一個字符串對待。不知道爲什麼你將它包裝在一個元素數組中。 –
更簡單的方法:在PHP端的implode(),在Java端的String.split()。也就是說,只有當你知道一個可以可靠地用作分隔符的角色! –