現在、Androidサーバーからの応答として「JSON」を使用するアプリに取り組んでいます。通常、JSON応答に取り組んでいます。しかし、JSON応答文字列が非常に長く、x文字よりも長い(logcatで表示できる最大文字列がどれくらいかは正確にはわかりません)、一部のJSON文字列が欠落しています。
それでも出力は得られますが、サーバーから送信されるJSON文字列に関する情報が必要です。
Logcatでより多くの文字列を表示する可能性はありますか?バッファや、logcatで表示できる最大文字列長を増やすために使用できるパラメータを増やすように。
醜いがそれは仕事をします:
public static void longInfo(String str) {
if(str.length() > 4000) {
Log.i(TAG, str.substring(0, 4000));
longInfo(str.substring(4000));
} else
Log.i(TAG, str);
}
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);
これは私がやった方法です。
一部のRESTful APIは非常に長いJSON応答を返します。 LogCat用にフォーマットする方法は次のとおりです。
private static final int LOGCAT_MAX_LENGTH = 3950;
...
private void logLongJsonStringIfDebuggable(String s) {
if (BuildConfig.DEBUG) {
while (s.length() > LOGCAT_MAX_LENGTH) {
int substringIndex = s.lastIndexOf(",", LOGCAT_MAX_LENGTH);
if (substringIndex == -1)
substringIndex = LOGCAT_MAX_LENGTH;
Log.d(TAG, s.substring(0, substringIndex));
s = s.substring(substringIndex).trim();
}
Log.d(TAG, s);
}
}
eclipseを使用していない場合、または使用しているのに@Nanneの回答が機能しない場合、次の2つの方法でしか考えられません。
edit:別の可能性:JSONをログのようにSDカード内のファイルに書き込み、応答を確認するときにファイルを取得します
コマンドラインからlogcatを使用しないのはなぜですか?
期待通りかどうか疑問ですが、やってみませんか?
コマンドを発行する
./adb -e logcat
adbがあるディレクトリから。これはエミュレータ用です。デバイスの-e
を-d
に置き換えます