package org.nutz.json; import static org.junit.Assert.*; import java.util.HashMap; import java.util.Map; import org.junit.Test; import org.nutz.lang.Strings; public class CustomizedJsonTest { @Test public void test_trout_in_map() { Trout t = new Trout(); t.setColor(Trout.COLOR.RED); t.setWeight(8.78f); Map<String, Trout> m = new HashMap<String, Trout>(); m.put("t1", t); String exp = "{t1:\"Trout[RED](8.78)\"}"; String json = Json.toJson(m, JsonFormat.compact().setQuoteName(false)); assertEquals(exp, json); } public static class CJT01 { public String toJson(JsonFormat fmt) { return "01"; } } @Test public void test_without_to_json_ann() { CJT01 obj = new CJT01(); String s = Json.toJson(obj); assertEquals("01", s); } public static class CJT02 { public String toJson() { return "02"; } } @Test public void test_without_to_json_ann_and_without_parameter() { CJT02 obj = new CJT02(); String s = Json.toJson(obj); assertEquals("02", s); } public static class CJT03 { String abc; public String getAbc() { return abc.toUpperCase(); } } @Test public void test_to_json_by_getter() { CJT03 obj = new CJT03(); obj.abc = "xxx"; assertEquals("{\"abc\":\"XXX\"}", Json.toJson(obj, JsonFormat.compact())); } public static class CJT04 { private String txt; @JsonField(value = "ag", ignore = true) private int age; public String getTxt() { return txt; } public void setTxt(String txt) { this.txt = txt; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } @Test public void test_json_ignore_read_write() { CJT04 obj = Json.fromJson(CJT04.class, "{txt:'abc',ag:10}"); assertEquals("abc", obj.getTxt()); assertEquals(10, obj.getAge()); String json = Strings.trim(Json.toJson(obj, JsonFormat.compact().setQuoteName(false))); assertEquals("{txt:\"abc\"}", json); } }