@Test public void test_toObject() throws Exception { EbeanServer server = Ebean.getDefaultServer(); JsonContext json = server.json(); Customer customer = new Customer(); customer.setId(1); customer.setName("Jim"); String asJson = json.toJson(customer); Object bean = json.toObject(Customer.class, asJson); assertTrue(bean instanceof Customer); assertEquals(Integer.valueOf(1), ((Customer) bean).getId()); assertEquals("Jim", ((Customer) bean).getName()); StringReader reader = new StringReader(asJson); bean = json.toObject(Customer.class, reader); assertTrue(bean instanceof Customer); assertEquals(Integer.valueOf(1), ((Customer) bean).getId()); assertEquals("Jim", ((Customer) bean).getName()); }
@Test public void testCreateGenerator() throws Exception { EbeanServer server = Ebean.getDefaultServer(); StringWriter writer = new StringWriter(); JsonContext json = server.json(); JsonGenerator generator = json.createGenerator(writer); Customer customer = new Customer(); customer.setId(1); customer.setName("Jim"); // we can use the generator before and after our json.toJson() call // ... confirming we are not closing the generator generator.writeStartArray(); json.toJson(customer, generator, PathProperties.parse("id,name")); generator.writeEndArray(); generator.close(); String jsonString = writer.toString(); assertTrue(jsonString, jsonString.startsWith("[")); assertTrue(jsonString, jsonString.endsWith("]")); assertTrue(jsonString, jsonString.contains("{\"id\":1,\"name\":\"Jim\"}")); }
public final JsonContext json() throws RecognitionException { JsonContext _localctx = new JsonContext(_ctx, getState()); enterRule(_localctx, 0, RULE_json); try { setState(12); switch (_input.LA(1)) { case LCURLY: enterOuterAlt(_localctx, 1); { setState(10); object(); } break; case LBRACK: enterOuterAlt(_localctx, 2); { setState(11); array(); } break; default: throw new NoViableAltException(this); } } catch (RecognitionException re) { _localctx.exception = re; _errHandler.reportError(this, re); _errHandler.recover(this, re); } finally { exitRule(); } return _localctx; }
@Test public void testIsSupportedType() throws Exception { EbeanServer server = Ebean.getDefaultServer(); JsonContext json = server.json(); assertTrue(json.isSupportedType(Customer.class)); assertFalse(json.isSupportedType(System.class)); }
@Test public void testCreateGenerator_writeRaw() throws Exception { EbeanServer server = Ebean.getDefaultServer(); StringWriter writer = new StringWriter(); JsonContext json = server.json(); JsonGenerator generator = json.createGenerator(writer); // test that we can write anything via writeRaw() generator.writeRaw("START"); generator.writeStartArray(); generator.writeStartObject(); generator.writeNumberField("count", 12); generator.writeEndObject(); generator.writeEndArray(); generator.writeRaw("END"); generator.close(); assertEquals("START[{\"count\":12}]END", writer.toString()); }
@SuppressWarnings("unchecked") public Map<String, Object> getInnerData(Map<String, Object> context) { if (context instanceof Map<?, ?> && ((Map<String, Object>) context).containsKey("$$archive") && ((Map<String, Object>) context).containsKey("$$id")) { Map<String, Object> datumAsMap = (Map<String, Object>) context; Archive arch = jsonContext.getArchive((String) datumAsMap.get("$$archive")); if (arch == null) return null; Object target = arch.getObject((Integer) datumAsMap.get("$$id")); if (target instanceof Map<?, ?>) return (Map<String, Object>) target; } return null; }
public final void serialize(JsonContext context, T keyValuePairs) { List<KeyValue<String, Object>> items = listItem(keyValuePairs); if (items == null) { context.context("{}"); return; } context.context('{'); int i = 0; for (KeyValue<String, Object> item : items) { String key = item.getKey(); Object value = item.getValue(); context.context('"'); context.context(JsonUtils.render(key.toString())); context.context('"'); context.context(':'); JsonSerializeConfigHolder.addPro(key); ObjectSerializer.getInstance().serialize(context, value); if (i++ != items.size() - 1) { context.context(","); } JsonSerializeConfigHolder.backPro(); } context.context('}'); }
/** Serializes object into provided appendable. */ public void serialize(Object source, Appendable target) { JsonContext jsonContext = new JsonContext(this, target); jsonContext.serialize(source); }