2016-12-22 6 views
4

필요한 일부 필요한 정보가 들어있는 서버에서 JSON 응답을 캡처하는 프로그램을 작성합니다. 언젠가는 내 프로그램이 올바른 JSON 문자열을 포착 할 수 없다는 것을 알았고 때로는 문제없이 잘 작동한다는 것을 알게되었습니다. 나는 응답을 포착하기위한 코드를 확인하려고하고 그 코드에 대해서는 전혀 모른다. JSON 문자열을 서버에서 확인할 때 원하는 필드가 있지만 프로그램에서 올바른 데이터를 캡처 할 수 없습니다. JSON 데이터를 캡처 할 수 없습니다.

이는 JSON 문자열과 내가 필요로하는 분야가 내가 발견 한 무엇 action_In_process

String Url1 = "http://IP:port/etc/"; 
HttpURLConnection con = (HttpURLConnection) Url1.openConnection(); 
con.setRequestMethod("GET"); 
con.connect(); 
int responseCode = con.getResponseCode(); 
if(responseCode == 200) 
{ 
    try 
    { 
    InputStream is = con.getInputStream(); 
    BufferedReader read = new BufferedReader (new InputStreamReader(is)); 
    StringBuffer buffer = new StringBuffer(); 
    String data = "" ; 
    while((data = read.readLine()) != null) 
    { 
     buffer.append(data); 
    } 

    String JsonData = buffer.toString(); 
    JSONObject jobj = new JSONObject(JsonData); 
    JSONObject process_info = jobj.getJSONObject("info"); 
    JSONObject pi = process_info.getJSONObject("post"); 
    String action_run = pi.getString("actions_In_process"); 
    System.out.println("Process:" +action_run); 

입니다 캡처 내 프로그램 언젠가 프로세스를 보여주는이된다

"info":{ 
      "reason":"Fine", 
      "boolean":false, 
      "post":{ 
         "actions":"", 
         "actions_In_process":"Checked", 
         "destination":"C%3ApdfFdoc%20edipdfFdestinationpdfFexample.pdf", 
         "file_type":"pdf", 
        
      }, 

내 JSON 문자열입니다 blank하지만 JSON 데이터를 다시 얻었을 때 필요한 필드가 JSON 응답 내부에 있음을 알았습니다. 이것이 내가 할 수없는 올바른 JSON 문자열을

Process : 

하면 정상 상태에서

Process : check 
+1

jsonlint.com을 사용하여 json 문자열을 확인하십시오. –

+4

"JSON String"이 (가) 유효한 JSON이 아닙니다. – Henry

+0

@ScaryWombat - 유효성을 검사했습니다. 원하는 데이터가 포함되어 있지만 프로그램에서 검색 할 수 없습니다. – yumi

답변

-1

의 BufferedReader의의 readline을 캡처하는 경우

이 내 컴파일러를 표시하는 메시지입니다 문제에 대한) (당신의 의견을 공유하세요 차단하고 있습니다.

+0

그래서? 그 문제는 무엇입니까? 다른 방법으로 InputSteam을 문자열로 읽어야합니까? –

+0

내 영어가 좋지 않아, 나는 당신에게 방향을 제공 할 수 있습니다, 당신은이 방향에서 문제를 해결할 수 있습니다. –

+0

Google 번역을 사용할 수 있습니다. 영어로 글쓰기를 강요 할 필요는 없습니다. 메소드가 블로킹한다는 사실은 문제가되지 않습니다. –

관련 문제