2016-02-07 150 views
0

我有一個字符串數組,類似於字符串[]句子,它由每個索引中的一個句子組成,如This is the first messagesentences[0]This is the second messagesentences[1]等等。我的Java代碼將信息發送到服務器進行情感分析是這樣的:如何將字符串數組轉換爲Json數組

OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream()); 
     out.write(
       "[ " + 
       "\"Can't wait for the movie\"," + 
       "\"Countdown! Only ten days remaining!\" " + 
       "]"); 
     out.flush(); 
     out.close(); 

如何通過字符串數組替換文本在上面的代碼,它的長度別回答n?

+0

_如何將字符串數組添加到以下JSON中?_,其中是JSON?這個問題與JSON無關。 –

+0

明白了,對不起。無論如何,我該如何將這個字符串數組轉換爲JSON數組? –

回答

5

使用Gson庫,其將Java對象JSON字符串

String[] sentences=new String[3]; 
    sentences[0]="Hi"; 
    sentences[1]="Hello"; 
    sentences[2]="How r u?"; 

    Gson gson=new GsonBuilder().create(); 
    String jsonArray=gson.toJson(sentences); 

    //["Hi","Hello","How r u?"] 

    out.write(jsonArray); 
    out.flush(); 
    out.close(); 
+0

嘿,我試過了,但後來我得到了200:錯誤的JSON格式錯誤作爲響應,我試了這個,但我不確定它是否正確,它對所有的中立響應 'OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream()); out.write(「[」+「\」+ tweets [0] + \「,」+「\」+ tweets [1] + \「」+「]」 ); out.flush(); out.close();'可能是什麼問題? –

+0

它的工作原理我!謝謝 –

0

的最簡單的解決方案是一個循環:

StringBuilder sb = new StringBuilder("["); 
for(int i = 0; i < array.length; i++) { 
    sb.append(array[i]); 
    if(i < array.length-1) { 
     sb.append(","); 
    } 
} 
out.write(sb.append("]").toString()); 

但這具有產生潛在無效JSON(未逸出)的問題。因此:

最好的解決方案,但是,這是使用適當的JSON/Java綁定庫如傑克遜,GSON等

+0

嘿,我試了一下,但後來我得到了200:錯誤的JSON格式錯誤作爲響應。我試過這個,但我不確定它是否正確。它對所有人都保持中立態度。 'OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream()); out.write( 「[」+ 「\」+ tweets [0] + \「,」+ 「\」+ tweets [1] + \「」+ 「]」); out.flush(); out.close();'可能是什麼問題? –

+0

正如我指出的,這可能會產生無效的json。這就是爲什麼你被鼓勵使用傑克遜或Gson。 –

+0

'StringBuilder sb = new StringBuilder(); \t \t \t sb.append( 「[\」「); \t \t \t對(INT X = 0; X <值; X ++) \t \t \t { \t \t \t \t一個字符串= XYZ [X]。的replaceAll( 「[^ A-ZA-Z0-9]」, 「 」); \t \t \t \t sb.append(「 +」); \t \t \t \t sb.append(一); \t \t \t \t如果(X

相關問題