@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\"}"));
  }
Example #3
0
 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;
 }
Example #7
0
 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('}');
 }
Example #8
0
  /** Serializes object into provided appendable. */
  public void serialize(Object source, Appendable target) {
    JsonContext jsonContext = new JsonContext(this, target);

    jsonContext.serialize(source);
  }