@Override public void write(JSONStringer writer) throws JSONException { super.write(writer); writer.key(ID).value(getId()); JSONUtils.writeArray(writer, TYPED_PROPERTIES, getTypedProperties()); }
@Override public void write(JSONStringer writer) throws JSONException { JSONUtils.write(writer, TYPE, getType()); JSONUtils.write(writer, MESSAGE, getMessage()); JSONUtils.write(writer, STACK_TRACE, getStackTrace()); JSONUtils.writeArray(writer, FRAMES, getFrames()); JSONUtils.writeArray(writer, INNER_EXCEPTIONS, getInnerExceptions()); JSONUtils.write(writer, WRAPPER_SDK_NAME, getWrapperSdkName()); }
@Override public void write(JSONStringer writer) throws JSONException { JSONUtils.write(writer, ID, getId()); JSONUtils.write(writer, NAME, getName()); JSONUtils.writeArray(writer, FRAMES, getFrames()); }
@Override public void write(JSONStringer writer) throws JSONException { super.write(writer); if (getException() != null) { writer.key(EXCEPTION).object(); exception.write(writer); writer.endObject(); } JSONUtils.writeArray(writer, THREADS, getThreads()); }
@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()); }