2015-12-26 70 views
1

我想要做的是得到一個響應,但不知道如何從中提取值。解析Java中的JSON響應提取值

實際響應如下:

[ 
    "SUCCESS", 
    [ [ 
     "Karachi", 
     ["کراچی"], 
     [], 
      { 
     "candidate_type": [0], 
     "is_confident": [true] 
     } 
    ]] 
] 

我需要從中提取urdu文本它

String text = "Karachi";    
    String url = "https://inputtools.google.com/request";  
    try {   
     final HttpClient client = new HttpClient(); 
      final PostMethod method = new PostMethod(url); 
      method.setParameter("text", text); 
      method.setParameter("itc", "ur-t-i0-und"); 
      method.setParameter("num", "1"); 
      method.setParameter("cp", "0"); 
      method.setParameter("cs", "1"); 
      method.setParameter("ie", "utf-8");  
      client.executeMethod(method);    
      BufferedReader strResponse = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream(),"UTF-8")); 
      Object jObj = (Object) JSON.parse(strResponse); 
+0

你是說你需要提取一些關鍵'urdu'的值?我問,因爲根據你發佈的JSON,這是不可能的(因爲在任何地方都沒有'urdu')。 – Mike

+0

不,我想提取[「کراچی」]這個值...我問的是關於烏爾都語文本 – user1162546

+0

什麼是期望的輸出? – Vedda

回答

1

試試這個(你的緩衝讀者可能有一個以上的線):

StringBuilder yourJsonString= new StringBuilder(); 
String line; 
while ((line = strResponse.readLine()) != null) { 
     yourJsonString.append(line); 
} 
JSONArray jsonObject = new JSONArray(yourJsonString.toString()); 
//retrieve the second element of json array 
JSONArray secondElmArray= jsonObject.getJSONArray(1); 
JSONArray innerArray = secondElmArray.getJSONArray(0); 

JSONArray urduList= innerArray.getJSONArray(1); 
String urduWord= urduList.getString(0); 
+0

可以üPLZ告訴我如何解析上述BufferRader字符串到JsonString。 – user1162546

+0

我更新了我的帖子,請檢查 – ikken

+0

[「SUCCESS」,[[「卡拉奇」,[「کراچی」],[],{「candidate_type」:[0],「is_confident」:[true]}]]] 這個迴應我得到,但我只需要從中提取[「کراچی」] 您發送的代碼我已經嘗試過,但我得到**卡拉奇**,但我需要[「کراچی」]此值 – user1162546