From 2eaab7507dc93e5ad2f482235ad235722d266785 Mon Sep 17 00:00:00 2001 From: wentch <22250530@qq.com> Date: Thu, 31 Dec 2015 15:04:06 +0800 Subject: [PATCH] --- convert.html | 89 ++++++++++++++++++++++++++++++--------- stylesheets/highlight.css | 12 +++--- 2 files changed, 75 insertions(+), 26 deletions(-) diff --git a/convert.html b/convert.html index 12d865769..f016b2a93 100644 --- a/convert.html +++ b/convert.html @@ -31,7 +31,7 @@

Convert 快速上手

      本介绍仅以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);
-
- + 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 <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"} + }
+