2014-10-09 146 views
2

我正在編程一個簡單的Java服務器上的TCP服務器,它正在監聽某個端口上的某個URL。某些客戶端(不是Java)會向服務器發送JSON消息,如{'message':'hello world!', 'test':555}。我接受嘗試獲取JSON的消息(我正在考慮使用GSON庫)。Java讀取JSON輸入流

Socket socket = serverSocket.accept(); 
InputStream inputStream = socket.getInputStream(); 

但是我怎樣才能從輸入流中獲取消息?我試圖使用ObjectInputStream,但據我瞭解,它等待序列化數據和JSON沒有序列化。

+0

JSON是一個字符串,直到您使用庫將其解碼爲一個java對象 – scrappedcola 2014-10-09 17:27:52

回答

6

BufferedReader包裹它,並開始從中讀取數據:

BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
String content = br.readLine(); 
System.out.println(content); 

然後用像GSON或傑克遜庫解析您的JSON字符串。