2013-04-07 10 views

Odpowiedz

44

Możesz użyć metody , aby wydrukować JSON na logcat.

Log.d("tag", jsonObject.toString(4)); 

Wyjście

(29124): { 
(29124):  "text": "hello world", 
(29124):  "code": "0" 
(29124): } 
+0

niesamowite, dzięki! – Michael

+3

@DeepakBala Co to jest '4' w' Log.d ("tag", jsonObject.toString (4)); '? Czy to jest odstęp? –

+2

Tak, jest to [współczynnik wcięcia] (http://www.json.org/javadoc/org/json/JSONObject.html#toString (int)) –

6

Nie dość wydrukować wiadomość JSON w kodzie. Po prostu dwukrotnie kliknę na wiadomość na komputerze Mac w systemie Mac OS X, a ona całkiem go wydrukuje lub podświetli Base64, aby ją zdekodować.

enter image description here

Pełne ujawnienie, jestem twórcą LogRabbit dla Mac.

+0

Dodałem samouczek wideo do filtrowania wszystkich wiadomości, które zawierają JSON w plikach logcat tutaj https://www.youtube.com/watch? v = HeildKynnuc – Yepher

2

Można formacie JSON w dzienniku z oryginalnej formie kodem przetwarzanie moich Rejestrator:

link na Github: https://github.com/scijoker/logger

Źródło:

import android.os.Build; 
import android.util.Log; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

/** 
* Created by scijoker on 08.10.15. 
*/ 
public class Logger { 
    private static boolean DEBUG = true; 

    public static void d(String tag, String arg) { 
     if (isEnable()) { 
      log(tag, arg); 
     } 
    } 

    public static void d(String logMsg) { 
     if (isEnable()) { 
      log(getCurrentClassName(), getCurrentMethodName() + "(): " + logMsg); 
     } 
    } 

    public static void dd(String tag, Object source) { 
     if (isEnable()) { 
      Object o = getJsonObjFromStr(source); 
      if (o != null) { 
       try { 
        if (o instanceof JSONObject) { 
         format(tag, ((JSONObject) o).toString(2)); 
        } else if (o instanceof JSONArray) { 
         format(tag, ((JSONArray) o).toString(2)); 
        } else { 
         format(tag, source); 
        } 
       } catch (JSONException e) { 
        format(tag, source); 
       } 
      } else { 
       format(tag, source); 
      } 
     } 
    } 

    private static void log(String tag, String msg) { 
     Log.d(tag, msg); 
    } 

    private static String getSplitter(int length) { 
     StringBuilder builder = new StringBuilder(); 
     for (int i = 0; i < length; i++) { 
      builder.append("-"); 
     } 
     return builder.toString(); 
    } 

    private static void format(String tag, Object source) { 
     tag = " " + tag + " "; 
     log(" ", " "); 
     log(" ", getSplitter(50) + tag + getSplitter(50)); 
     log(" ", "" + source); 
     log(" ", getSplitter(100 + tag.length())); 
     log(" ", " "); 
    } 

    private static String getCurrentMethodName() { 
     return Thread.currentThread().getStackTrace()[4].getMethodName(); 
    } 

    private static String getCurrentClassName() { 
     String className = Thread.currentThread().getStackTrace()[4].getClassName(); 
     String[] temp = className.split("[\\.]"); 
     className = temp[temp.length - 1]; 
     return className; 
    } 

    private static Object getJsonObjFromStr(Object test) { 
     Object o = null; 
     try { 
      o = new JSONObject(test.toString()); 
     } catch (JSONException ex) { 
      try { 
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
        o = new JSONArray(test); 
       } 
      } catch (JSONException ex1) { 
       return null; 
      } 
     } 
     return o; 
    } 

    public static boolean isEnable() { 
     return DEBUG; 
    } 

    public static void setEnable(boolean flag) { 
     Logger.DEBUG = flag; 
    } 
} 
1

fastJson dostarczenie sposobu:

//serialize a prettyFormat json string 

public static final String toJSONString(Object object, boolean prettyFormat); 

eg:Log.d(TAG,JSON.toJSONString(object, true)); 

 

Powiązane problemy