This commit is contained in:
89
convert.html
89
convert.html
@@ -31,7 +31,7 @@
|
||||
<h3><a id="welcome-to-github-pages" class="anchor" href="#welcome-to-github-pages" aria-hidden="true"><span class="octicon octicon-link"></span></a>Convert 快速上手</h3>
|
||||
<p> 本介绍仅以JSON为例(BSON与JSON使用方式雷同)。其操作类主要是JsonConvert,配置类主要是JsonFactory、ConvertColumn。</br></p>
|
||||
<p> JsonConvert 序列化方法:</p>
|
||||
|
||||
|
||||
<div class="highlight"><pre> <span class="kd">public</span> <span class="n">String</span> <span class="nf">convertTo</span><span class="o">(</span><span class="n">Object</span> <span class="n">value</span><span class="o">);</span>
|
||||
|
||||
<span class="kd">public</span> <span class="n">String</span> <span class="nf">convertTo</span><span class="o">(</span><span class="kd">final</span> <span class="n">Type</span> <span class="n">type</span><span class="o">,</span> <span class="n">Object</span> <span class="n">value</span><span class="o">);</span>
|
||||
@@ -46,9 +46,8 @@
|
||||
|
||||
<span class="kd">public</span> <span class="n">ByteBuffer</span><span class="o">[]</span> <span class="nf">convertTo</span><span class="o">(</span><span class="kd">final</span> <span class="n">Supplier</span><span class="o"><</span><span class="n">ByteBuffer</span><span class="o">></span> <span class="n">supplier</span><span class="o">,</span> <span class="n">Object</span> <span class="n">value</span><span class="o">);</span>
|
||||
|
||||
<span class="kd">public</span> <span class="n">ByteBuffer</span><span class="o">[]</span> <span class="nf">convertTo</span><span class="o">(</span><span class="kd">final</span> <span class="n">Charset</span> <span class="n">charset</span><span class="o">,</span> <span class="kd">final</span> <span class="n">Supplier</span><span class="o"><</span><span class="n">ByteBuffer</span><span class="o">></span> <span class="n">supplier</span><span class="o">,</span> <span class="n">Object</span> <span class="n">value</span><span class="o">);</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="kd">public</span> <span class="n">ByteBuffer</span><span class="o">[]</span> <span class="nf">convertTo</span><span class="o">(</span><span class="kd">final</span> <span class="n">Charset</span> <span class="n">charset</span><span class="o">,</span> <span class="kd">final</span> <span class="n">Supplier</span><span class="o"><</span><span class="n">ByteBuffer</span><span class="o">></span> <span class="n">supplier</span><span class="o">,</span> <span class="n">Object</span> <span class="n">value</span><span class="o">);</span></pre></div>
|
||||
|
||||
<p> JsonConvert 反解析方法:</p>
|
||||
<div class="highlight"><pre> <span class="kd">public</span> <span class="o"><</span><span class="n">T</span><span class="o">></span> <span class="n">T</span> <span class="nf">convertFrom</span><span class="o">(</span><span class="kd">final</span> <span class="n">Type</span> <span class="n">type</span><span class="o">,</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">text</span><span class="o">);</span>
|
||||
|
||||
@@ -56,24 +55,74 @@
|
||||
|
||||
<span class="kd">public</span> <span class="o"><</span><span class="n">T</span><span class="o">></span> <span class="n">T</span> <span class="nf">convertFrom</span><span class="o">(</span><span class="kd">final</span> <span class="n">Type</span> <span class="n">type</span><span class="o">,</span> <span class="kd">final</span> <span class="kt">char</span><span class="o">[]</span> <span class="n">text</span><span class="o">,</span> <span class="kt">int</span> <span class="n">start</span><span class="o">,</span> <span class="kt">int</span> <span class="n">len</span><span class="o">);</span>
|
||||
|
||||
<span class="kd">public</span> <span class="o"><</span><span class="n">T</span><span class="o">></span> <span class="n">T</span> <span class="nf">convertFrom</span><span class="o">(</span><span class="kd">final</span> <span class="n">Type</span> <span class="n">type</span><span class="o">,</span> <span class="kd">final</span> <span class="n">ByteBuffer</span><span class="o">...</span> <span class="n">buffers</span><span class="o">);</span>
|
||||
</pre></div>
|
||||
<span class="kd">public</span> <span class="o"><</span><span class="n">T</span><span class="o">></span> <span class="n">T</span> <span class="nf">convertFrom</span><span class="o">(</span><span class="kd">final</span> <span class="n">Type</span> <span class="n">type</span><span class="o">,</span> <span class="kd">final</span> <span class="n">ByteBuffer</span><span class="o">...</span> <span class="n">buffers</span><span class="o">);</span></pre></div>
|
||||
<p> 范例:</p>
|
||||
<div class="highlight"><pre> <span class="kd">public</span> <span class="kd">class</span> <span class="nc">UserRecord</span> <span class="o">{</span>
|
||||
|
||||
<div class="highlight"><pre> <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
|
||||
<span class="n">JsonFactory</span> <span class="n">factory</span> <span class="o">=</span> <span class="n">JsonFactory</span><span class="o">.</span><span class="na">root</span><span class="o">();</span>
|
||||
<span class="n">factory</span><span class="o">.</span><span class="na">setTiny</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
|
||||
<span class="kd">final</span> <span class="n">JsonConvert</span> <span class="n">convert</span> <span class="o">=</span> <span class="n">JsonFactory</span><span class="o">.</span><span class="na">root</span><span class="o">().</span><span class="na">getConvert</span><span class="o">();</span>
|
||||
<span class="n">String</span> <span class="n">json</span> <span class="o">=</span> <span class="s">"{\"access_token\":\"vVX2bIjN5P9TMOphDkStM96eNWapAehTuWAlVDO74aFaYxLwj2b-9-T9p_W2mfr9\",\"expires_in\":7200, \"aa\":\"\"}"</span><span class="o">;</span>
|
||||
<span class="n">Map</span><span class="o"><</span><span class="n">String</span><span class="o">,</span> <span class="n">String</span><span class="o">></span> <span class="n">map</span> <span class="o">=</span> <span class="n">convert</span><span class="o">.</span><span class="na">convertFrom</span><span class="o">(</span><span class="n">JsonConvert</span><span class="o">.</span><span class="na">TYPE_MAP_STRING_STRING</span><span class="o">,</span> <span class="n">json</span><span class="o">);</span>
|
||||
<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">map</span><span class="o">);</span>
|
||||
<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">convert</span><span class="o">.</span><span class="na">convertTo</span><span class="o">(</span><span class="n">map</span><span class="o">));</span>
|
||||
<span class="n">ByteBuffer</span><span class="o">[]</span> <span class="n">buffers</span> <span class="o">=</span> <span class="n">convert</span><span class="o">.</span><span class="na">convertTo</span><span class="o">(()</span> <span class="o">-></span> <span class="n">ByteBuffer</span><span class="o">.</span><span class="na">allocate</span><span class="o">(</span><span class="mi">1024</span><span class="o">),</span> <span class="n">map</span><span class="o">);</span>
|
||||
<span class="kt">byte</span><span class="o">[]</span> <span class="n">bs</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="o">[</span><span class="n">buffers</span><span class="o">[</span><span class="mi">0</span><span class="o">].</span><span class="na">remaining</span><span class="o">()];</span>
|
||||
<span class="n">buffers</span><span class="o">[</span><span class="mi">0</span><span class="o">].</span><span class="na">get</span><span class="o">(</span><span class="n">bs</span><span class="o">);</span>
|
||||
<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="k">new</span> <span class="nf">String</span><span class="o">(</span><span class="n">bs</span><span class="o">));</span>
|
||||
<span class="n">main2</span><span class="o">(</span><span class="n">args</span><span class="o">);</span>
|
||||
<span class="kd">private</span> <span class="kt">int</span> <span class="n">userid</span><span class="o">;</span>
|
||||
|
||||
<span class="kd">private</span> <span class="n">String</span> <span class="n">username</span> <span class="o">=</span> <span class="s">""</span><span class="o">;</span>
|
||||
|
||||
<span class="kd">private</span> <span class="n">String</span> <span class="n">password</span> <span class="o">=</span> <span class="s">""</span><span class="o">;</span>
|
||||
|
||||
<span class="kd">public</span> <span class="nf">UserRecord</span><span class="o">()</span> <span class="o">{</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="kd">public</span> <span class="kt">int</span> <span class="nf">getUserid</span><span class="o">()</span> <span class="o">{</span>
|
||||
<span class="k">return</span> <span class="n">userid</span><span class="o">;</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUserid</span><span class="o">(</span><span class="kt">int</span> <span class="n">userid</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="k">this</span><span class="o">.</span><span class="na">userid</span> <span class="o">=</span> <span class="n">userid</span><span class="o">;</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="kd">public</span> <span class="n">String</span> <span class="nf">getUsername</span><span class="o">()</span> <span class="o">{</span>
|
||||
<span class="k">return</span> <span class="n">username</span><span class="o">;</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUsername</span><span class="o">(</span><span class="n">String</span> <span class="n">username</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="k">this</span><span class="o">.</span><span class="na">username</span> <span class="o">=</span> <span class="n">username</span><span class="o">;</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="kd">public</span> <span class="n">String</span> <span class="nf">getPassword</span><span class="o">()</span> <span class="o">{</span>
|
||||
<span class="k">return</span> <span class="n">password</span><span class="o">;</span>
|
||||
<span class="o">}</span>
|
||||
|
||||
<span class="kd">public</span> <span class="kt">void</span> <span class="nf">setPassword</span><span class="o">(</span><span class="n">String</span> <span class="n">password</span><span class="o">)</span> <span class="o">{</span>
|
||||
<span class="k">this</span><span class="o">.</span><span class="na">password</span> <span class="o">=</span> <span class="n">password</span><span class="o">;</span>
|
||||
<span class="o">}</span>
|
||||
<span class="o">}</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
|
||||
<span class="n">UserRecord</span> <span class="n">user</span> <span class="o">=</span> <span class="k">new</span> <span class="nf">UserRecord</span><span class="o">();</span>
|
||||
<span class="n">user</span><span class="o">.</span><span class="na">setUserid</span><span class="o">(</span><span class="mi">100</span><span class="o">);</span>
|
||||
<span class="n">user</span><span class="o">.</span><span class="na">setUsername</span><span class="o">(</span><span class="s">"redkalename"</span><span class="o">);</span>
|
||||
<span class="n">user</span><span class="o">.</span><span class="na">setPassword</span><span class="o">(</span><span class="s">"123456"</span><span class="o">);</span>
|
||||
<span class="kd">final</span> <span class="n">JsonConvert</span> <span class="n">convert</span> <span class="o">=</span> <span class="n">JsonFactory</span><span class="o">.</span><span class="na">root</span><span class="o">().</span><span class="na">getConvert</span><span class="o">();</span>
|
||||
<span class="n">String</span> <span class="n">json</span> <span class="o">=</span> <span class="n">convert</span><span class="o">.</span><span class="na">convertTo</span><span class="o">(</span><span class="n">user</span><span class="o">);</span>
|
||||
<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">json</span><span class="o">);</span> <span class="c1">//应该是 {"password":"123456","userid":100,"username":"redkalename"}</span>
|
||||
<span class="n">UserRecord</span> <span class="n">user2</span> <span class="o">=</span> <span class="n">convert</span><span class="o">.</span><span class="na">convertFrom</span><span class="o">(</span><span class="n">UserRecord</span><span class="o">.</span><span class="na">class</span><span class="o">,</span> <span class="n">json</span><span class="o">);</span>
|
||||
<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">convert</span><span class="o">.</span><span class="na">convertTo</span><span class="o">(</span><span class="n">user2</span><span class="o">));</span> <span class="c1">//应该也是 {"password":"123456","userid":100,"username":"redkalename"}</span>
|
||||
|
||||
<span class="cm">/**</span>
|
||||
<span class="cm"> * 以下功能是为了屏蔽password字段。</span>
|
||||
<span class="cm"> * 等价于在 public String getPassword() 加上 @ConvertColumn :</span>
|
||||
<span class="cm"> *</span>
|
||||
<span class="cm"> * @ConvertColumn(ignore = true, type = ConvertType.JSON)</span>
|
||||
<span class="cm"> * public String getPassword() {</span>
|
||||
<span class="cm"> * return password;</span>
|
||||
<span class="cm"> * }</span>
|
||||
<span class="cm"> **/</span>
|
||||
<span class="kd">final</span> <span class="n">JsonFactory</span> <span class="n">childFactory</span> <span class="o">=</span> <span class="n">JsonFactory</span><span class="o">.</span><span class="na">root</span><span class="o">().</span><span class="na">createChild</span><span class="o">();</span>
|
||||
<span class="n">childFactory</span><span class="o">.</span><span class="na">register</span><span class="o">(</span><span class="n">UserRecord</span><span class="o">.</span><span class="na">class</span><span class="o">,</span> <span class="kc">true</span><span class="o">,</span> <span class="s">"password"</span><span class="o">);</span>
|
||||
<span class="n">childFactory</span><span class="o">.</span><span class="na">reloadCoder</span><span class="o">(</span><span class="n">UserRecord</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
|
||||
<span class="kd">final</span> <span class="n">JsonConvert</span> <span class="n">childConvert</span> <span class="o">=</span> <span class="n">childFactory</span><span class="o">.</span><span class="na">getConvert</span><span class="o">();</span>
|
||||
<span class="n">json</span> <span class="o">=</span> <span class="n">childConvert</span><span class="o">.</span><span class="na">convertTo</span><span class="o">(</span><span class="n">user</span><span class="o">);</span>
|
||||
<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">json</span><span class="o">);</span> <span class="c1">//应该是 {"userid":100,"username":"redkalename"}</span>
|
||||
<span class="n">user2</span> <span class="o">=</span> <span class="n">childConvert</span><span class="o">.</span><span class="na">convertFrom</span><span class="o">(</span><span class="n">UserRecord</span><span class="o">.</span><span class="na">class</span><span class="o">,</span> <span class="n">json</span><span class="o">);</span>
|
||||
<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="n">childConvert</span><span class="o">.</span><span class="na">convertTo</span><span class="o">(</span><span class="n">user2</span><span class="o">));</span> <span class="c1">//应该也是 {"userid":100,"username":"redkalename"}</span>
|
||||
<span class="o">}</span></pre></div>
|
||||
|
||||
|
||||
<footer class="site-footer">
|
||||
<span class="site-footer-owner"><a href="https://github.com/wentch/redkale">RedKale</a> © <a href="https://github.com/wentch">wentch</a> 欢迎加入RedKale技术交流QQ群: 527523235</span>
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
.highlight .hll { background-color: #ffffcc }
|
||||
.highlight { background: #f8f8f8; }
|
||||
.highlight .c { color: #408080; font-style: italic } /* Comment */
|
||||
.highlight .c { color: #17A05D } /* Comment */
|
||||
.highlight .err { border: 1px solid #FF0000 } /* Error */
|
||||
.highlight .k { color: #0000FF; font-weight: bold } /* Keyword */
|
||||
.highlight .o { color: #666666 } /* Operator */
|
||||
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
|
||||
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
|
||||
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
|
||||
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
|
||||
.highlight .cm { color: #17A05D } /* Comment.Multiline */
|
||||
.highlight .cp { color: #17A05D } /* Comment.Preproc */
|
||||
.highlight .c1 { color: #17A05D } /* Comment.Single */
|
||||
.highlight .cs { color: #17A05D } /* Comment.Special */
|
||||
.highlight .gd { color: #A00000 } /* Generic.Deleted */
|
||||
.highlight .ge { font-style: italic } /* Generic.Emph */
|
||||
.highlight .gr { color: #FF0000 } /* Generic.Error */
|
||||
@@ -47,7 +47,7 @@
|
||||
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
|
||||
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
|
||||
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
|
||||
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
|
||||
.highlight .sd { color: #BA2121 } /* Literal.String.Doc */
|
||||
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
|
||||
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
|
||||
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
|
||||
|
||||
Reference in New Issue
Block a user