[英]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.