2017-09-01 13 views
0

基本的に、JSONObject jsonを整数に変換したいです(127181078)。私はこのコードを使用する場合:JSONObjectを整数に解析する際に不正なint型エラーが発生しました

:私はこのコードを使用する場合127181078"

java.lang.NumberFormatException:int型無効

int intOfReceivedID = Integer.parseInt(json); 

を私は、このエラーメッセージが表示されます

char[] charArray = json.toCharArray(); 
String stringCharArray = charArray.toString(); 
testTextView.setText(stringCharArray); 

testTextViewから私には:[C @ 2378e625

しかし、私はこのコードを使用する場合:

preprocessedjson = String.valueOf(json); 
testTextView.setText(preprocessedjson); 

TextViewは127181078を与えますが、私は整数にテキストを解析するとき、私はいくつかのエラーを取得します。

  1. ここで何が起こっているか教えてもらえますか?
  2. JSONObjectを整数に変換できますか?

これは、PHPのコードです:

$myfile = fopen($filename, 'r') or die("Unable to open file!"); 
echo fread($myfile,filesize($filename)); 
fclose($myfile); 

これはmakeHttpRequestです:

JSONObject json = jparser.makeHttpRequest("http://myurl.nl/readspecifictextfile.php","POST",data); 
+0

オブジェクトを完全に異なる互換性のない型に変換する理由を説明する必要がありますか?特定のキーのオブジェクトからint値を取得したくないのですか? – Deadron

+0

intの代わりにlongとして解析してください。 –

+0

@Deadron:あなたのコメントは、私が何か愚かなことをしているという考えを私に与えます。私は実際にオブジェクトのint値を取得したいと思いますが、私はあなたのコメントの "特定のキーで"理解していません。助けてくれてありがとう! –

答えて

2

この質問は混乱しているが、これはそのJavaの問題であるように、あなたのエラーメッセージから、それが見えますあなたのJSON文字列は実際にJSON(例外メッセージから)を含んでいないように見えるので、JSONとは何の関係もありません。

あなたのjson値は、Integer.parseIntが処理しない追加のスペースに加えて数字であるように見えます。

Integer.parseInt(json.trim()) 
0
int intOfReceivedID = Integer.parseInt(json); 

を試してみてください私は、このエラー メッセージが出ます:ありますので、これが起こる127181078"

java.lang.NumberFormatException:無効なint型をIDの末尾に改行することができない改行文字rsedを整数に変換する。

私はこのコードを使用する場合:

char[] charArray = json.toCharArray(); 
String stringCharArray = charArray.toString(); 
testTextView.setText(stringCharArray); 

testTextViewは私を与える:デフォルトで2378e625

@ [Cを、オブジェクト上toString()を呼び出すことがで(オブジェクトのメモリ位置を表示しますこの場合[[email protected])。それはTextViewに表示されているものです。

しかし、私はこのコードを使用する場合:

preprocessedjson = String.valueOf(json); 
testTextView.setText(preprocessedjson); 

をTextViewには、127181078を与えますが、私は整数に テキストを解析するとき、私はいくつかのエラーを取得します。

最後に無効な改行文字が残っているため、テキストを整数に解析するとエラーが発生します。

長時間しか含まれていないサーバーからJSONObjectを受信して​​いる場合は、getLong()またはを使用して整数値を取得できます。 JSONパーサーは自動的にすべての解析を処理し、追加作業は必要ありません。

JSONObject json = jparser.makeHttpRequest("http://myurl.nl/readspecifictextfile.php","POST",data); 
final long receivedId = json.optLong(); 
+0

@ W.K.Sありがとうございます。説明のために! –

関連する問題