43

私は現在、サーバーからの応答として「JSON」を使用するAndroidアプリに取り組んでいます。通常、私は JSON 応答に取り組んでいます。JSON応答文字列が非常に長く、x文字を超える場合(logcatで表示できる最大文字列がどれだけ正確かわかりません)、JSON文字列の一部が欠落しています。 .

それでも出力が得られる可能性はありますが、サーバーから送信される JSON 文字列に関する情報が必要です。

logcat でより多くの文字列を表示する可能性はありますか? logcatで表示できる最大文字列長を増やすために使用できるバッファまたはパラメータを増やすのと同じです。

4

6 に答える 6

9
if(xml.length() > 4000) {
 for(int i=0;i<xml.length();i+=4000){
    if(i+4000<xml.length())
        Log.i("rescounter"+i,xml.substring(i, i+4000));
     else
        Log.i("rescounter"+i,xml.substring(i, xml.length()));
}
} else
Log.i("resinfo",xml);

これが私がやった方法です。

于 2013-05-06T10:51:24.343 に答える
1

Eclipseを使用していない場合、または使用しているが@Nanneの回答がうまくいかない場合は、2つの選択肢しか考えられません。

  1. より複雑ですが、あなたの JSON はある種の「イテラブル」(JSON オブジェクトおよび/または配列) で構成されていると思います。そのため、JSON を解析してトラバースし、LogCat の各要素を個別に出力できます。
  2. JSON 文字列を部分文字列に分割し、各部分文字列を LogCat に出力します (文字列を分割するさまざまな方法については、こちらを参照してください) 。

編集:別の可能性: JSON をログのように SD カード内のファイルに書き込み、応答を確認したいときにファイルを取得します。

于 2011-01-11T09:22:42.697 に答える
0

コマンドラインからlogcatを使用しないのはなぜですか?

ご期待に沿えるかどうかは疑問ですが、試してみませんか?

コマンドを発行する

./adb -e logcat

adbがあるディレクトリから。これはエミュレータ用です。デバイス用に-e置き換えます-d

于 2011-01-11T09:31:19.003 に答える
-5

一般に、Logcat に出力を取得する場合は、"Log" コマンドを使用する必要があります。

例:

Log.d(TAG,"OUTPUT"):

d = debug
TAG = 定義した文字列。Logcat の「通常の」出力の前の列に表示されます
OUTPUT = 印刷したいもの

Log は、logcat にメッセージを出力するために使用できるロギング クラスです。DDMS で logcat を実行すると、リアルタイムでメッセージを読み取ることができます (次で説明します)。一般的なロギング メソッドには、v(String, String) (詳細)、d(String, String) (デバッグ)、i(String, String) (情報)、w(String, String) (警告)、および e(String, String) があります。 ) (エラー)。

詳細については:

http://developer.android.com/guide/developing/debug-tasks.html

編集:

私が前に言及したのは、使用すべきではない出力でいくつかのものをテストするために、次のとおりです。

System.out.println("JSON stuff");

これを使用する代わりに、コードで使用する必要があります。

// Values just as example
private static void string TAG = "+++JSON+++";
...
Log.d(TAG,"JSON stuff in here");
...

Logcat に表示されます。理由は正確にはわかりませんが、良い方法ではありません。このように、エラー メッセージを表示することもできます。

Log.e(...);

Logcat の出力の色が変わるため、エラーが発生した場合などに見やすくなります。

于 2011-01-11T09:37:20.713 に答える