2016-12-22 30 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); 

である私のJSON文字列

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

です空白ですが、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翻訳を使うことができます。英語で書こうとすることを強いる必要はありません。メソッドがブロックされているということは問題ではありませんが –

関連する問題