簡體   English   中英

通過網絡將json_encode數組傳遞給Java

[英]pass json_encode array to java through network

我正在嘗試將php'client'的數組傳遞給java'server'的課程。 我在php中創建一個數組,使用json_encode對其進行編碼,並使用StringVariable.readLine()在服務器站點上將其接收。 我的問題:

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);

Java-作為“接收者”

BufferedReader in = new BufferedReader(new InputStreamReader(socket1.getInputStream())); 

 while ((in1 = in.readLine()) != null) 
                {  
                    String[] Decoder = {in1};
                    System.out.println(Arrays.asList(Decoder));

結果

[[“ foo”,“ bar”,“你好”,“世界”]]

我通常會在尋找一種解決方案,通過局域網將PHP數組從PHP傳遞到JAVA。 任何解決方案都很好。我也嘗試了serialize() ,得到的是

[a:4:{i:0; s:3:“ foo”; i:1; s:3:“ bar”; i:2; s:5:“ hallo”; i:3; s:5: “世界”;}]

幫助將不勝感激!!! 謝謝!

您將像在PHP中一樣使用json_encode ,然后在Java端使用JSON解碼器; 有幾個(傑克遜和格森都很受歡迎)。

這是使用Gson的基本示例:

String[] myStrings = new Gson().fromJson(in1, String[].class);

更好的是不要在Java中使用數組,而要使用List:

Type type = new TypeToken<List<String>>(){}.getType();
List<String> myStrings = new Gson().fromJson(in1, type);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM