diff --git a/convert.html b/convert.html index 12d865769..f016b2a93 100644 --- a/convert.html +++ b/convert.html @@ -31,7 +31,7 @@
本介绍仅以JSON为例(BSON与JSON使用方式雷同)。其操作类主要是JsonConvert,配置类主要是JsonFactory、ConvertColumn。
JsonConvert 序列化方法:
- + public String convertTo(Object value);
public String convertTo(final Type type, Object value);
@@ -46,9 +46,8 @@
public ByteBuffer[] convertTo(final Supplier<ByteBuffer> supplier, Object value);
- public ByteBuffer[] convertTo(final Charset charset, final Supplier<ByteBuffer> supplier, Object value);
-JsonConvert 反解析方法:
public <T> T convertFrom(final Type type, final String text);
@@ -56,24 +55,74 @@
public <T> T convertFrom(final Type type, final char[] text, int start, int len);
- public <T> T convertFrom(final Type type, final ByteBuffer... buffers);
- 范例:
+ public class UserRecord {
- public static void main(String[] args) throws Exception {
- JsonFactory factory = JsonFactory.root();
- factory.setTiny(true);
- final JsonConvert convert = JsonFactory.root().getConvert();
- String json = "{\"access_token\":\"vVX2bIjN5P9TMOphDkStM96eNWapAehTuWAlVDO74aFaYxLwj2b-9-T9p_W2mfr9\",\"expires_in\":7200, \"aa\":\"\"}";
- Map<String, String> map = convert.convertFrom(JsonConvert.TYPE_MAP_STRING_STRING, json);
- System.out.println(map);
- System.out.println(convert.convertTo(map));
- ByteBuffer[] buffers = convert.convertTo(() -> ByteBuffer.allocate(1024), map);
- byte[] bs = new byte[buffers[0].remaining()];
- buffers[0].get(bs);
- System.out.println(new String(bs));
- main2(args);
+ private int userid;
+
+ private String username = "";
+
+ private String password = "";
+
+ public UserRecord() {
+ }
+
+ public int getUserid() {
+ return userid;
+ }
+
+ public void setUserid(int userid) {
+ this.userid = userid;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
}
-
+
+ public static void main(String[] args) throws Exception {
+ UserRecord user = new UserRecord();
+ user.setUserid(100);
+ user.setUsername("redkalename");
+ user.setPassword("123456");
+ final JsonConvert convert = JsonFactory.root().getConvert();
+ String json = convert.convertTo(user);
+ System.out.println(json); //应该是 {"password":"123456","userid":100,"username":"redkalename"}
+ UserRecord user2 = convert.convertFrom(UserRecord.class, json);
+ System.out.println(convert.convertTo(user2)); //应该也是 {"password":"123456","userid":100,"username":"redkalename"}
+
+ /**
+ * 以下功能是为了屏蔽password字段。
+ * 等价于在 public String getPassword() 加上 @ConvertColumn :
+ *
+ * @ConvertColumn(ignore = true, type = ConvertType.JSON)
+ * public String getPassword() {
+ * return password;
+ * }
+ **/
+ final JsonFactory childFactory = JsonFactory.root().createChild();
+ childFactory.register(UserRecord.class, true, "password");
+ childFactory.reloadCoder(UserRecord.class);
+ final JsonConvert childConvert = childFactory.getConvert();
+ json = childConvert.convertTo(user);
+ System.out.println(json); //应该是 {"userid":100,"username":"redkalename"}
+ user2 = childConvert.convertFrom(UserRecord.class, json);
+ System.out.println(childConvert.convertTo(user2)); //应该也是 {"userid":100,"username":"redkalename"}
+ }