@Override public void read(JSONObject object) throws JSONException { setId(object.getLong(ID)); setName(object.optString(NAME, null)); setFrames(JSONUtils.readArray(object, FRAMES, StackFrameFactory.getInstance())); }
@Override public void read(JSONObject object) throws JSONException { setType(object.optString(TYPE, null)); setMessage(object.optString(MESSAGE, null)); setStackTrace(object.optString(STACK_TRACE, null)); setFrames(JSONUtils.readArray(object, FRAMES, StackFrameFactory.getInstance())); setInnerExceptions(JSONUtils.readArray(object, INNER_EXCEPTIONS, ExceptionFactory.getInstance())); setWrapperSdkName(object.optString(WRAPPER_SDK_NAME, null)); }
@Override public void read(JSONObject object) throws JSONException { super.read(object); if (object.has(EXCEPTION)) { JSONObject jException = object.getJSONObject(EXCEPTION); Exception exception = new Exception(); exception.read(jException); setException(exception); } setThreads(JSONUtils.readArray(object, THREADS, ThreadFactory.getInstance())); }
@Test public void readKeyNotExists() throws JSONException { /* Create an empty JSON object. */ JSONObject object = new JSONObject("{}"); /* Verify. */ assertNull(JSONUtils.readInteger(object, "key")); assertNull(JSONUtils.readLong(object, "key")); assertNull(JSONUtils.readBoolean(object, "key")); assertNull(JSONUtils.readMap(object, "key")); assertNull(JSONUtils.readArray(object, "key", new MockLogFactory())); }
@Test public void writeReadArray() throws JSONException { /* Generate mock logs. */ MockLog firstLog = AndroidTestUtils.generateMockLog(); MockLog secondLog = AndroidTestUtils.generateMockLog(); /* Create a test list. */ final List<MockLog> list = new ArrayList<>(); list.add(firstLog); list.add(secondLog); /* Write to JSON object. */ JSONStringer writer = new JSONStringer(); writer.object(); JSONUtils.writeArray(writer, "list", list); writer.endObject(); /* Convert to string. */ String json = writer.toString(); assertNotNull(json); /* Read a JSON object and verify. */ JSONObject object = new JSONObject(json); assertEquals(list, JSONUtils.readArray(object, "list", new MockLogFactory())); /* Test null value. */ writer = new JSONStringer(); JSONUtils.writeArray(writer, "null", null); assertNull(writer.toString()); }