教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang 中的序列化和反序列化

golang 中的序列化和反序列化

发布时间:2022-01-02   编辑:jiaochengji.com
教程集为您提供golang 中的序列化和反序列化等资源,欢迎您收藏本站,我们将为您提供最新的golang 中的序列化和反序列化资源
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"/></svg><pre><code class="lang-go hljs"><span class="token keyword">package</span> store <span class="token keyword">import</span><span class="token punctuation">(</span> <span class="token string">"io/ioutil"</span> <span class="token string">"encoding/json"</span> <span class="token string">"os"</span> <span class="token punctuation">)</span> <span class="token keyword">type</span> Monster <span class="token keyword">struct</span><span class="token punctuation">{</span> Name <span class="token builtin">string</span> <span class="token string">`json:"name"`</span> Age <span class="token builtin">uint</span> <span class="token string">`json:"age"`</span> Skill <span class="token builtin">string</span> <span class="token string">`json:"skill"`</span> <span class="token punctuation">}</span> <span class="token comment">//序列化本实体对象 方法</span> <span class="token keyword">func</span> <span class="token punctuation">(</span>this <span class="token operator">*</span>Monster<span class="token punctuation">)</span> <span class="token function">Store</span><span class="token punctuation">(</span>savePath <span class="token builtin">string</span> <span class="token punctuation">)</span> <span class="token builtin">bool</span> <span class="token punctuation">{</span> marshalSplice<span class="token punctuation">,</span>err <span class="token operator">:=</span> json<span class="token punctuation">.</span><span class="token function">Marshal</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token operator">*</span>this<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token keyword">if</span> err <span class="token operator">!=</span> <span class="token boolean">nil</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token boolean">false</span> <span class="token punctuation">}</span> err <span class="token operator">=</span> ioutil<span class="token punctuation">.</span><span class="token function">WriteFile</span><span class="token punctuation">(</span>savePath<span class="token punctuation">,</span>marshalSplice<span class="token punctuation">,</span><span class="token number">0666</span><span class="token punctuation">)</span> <span class="token keyword">if</span> err <span class="token operator">!=</span><span class="token boolean">nil</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token boolean">false</span> <span class="token punctuation">}</span> <span class="token keyword">return</span> <span class="token boolean">true</span> <span class="token punctuation">}</span> <span class="token comment">//反序列化方法</span> <span class="token keyword">func</span> <span class="token punctuation">(</span>this <span class="token operator">*</span>Monster<span class="token punctuation">)</span> <span class="token function">Restore</span><span class="token punctuation">(</span>unMarPath <span class="token builtin">string</span><span class="token punctuation">)</span> Monster <span class="token punctuation">{</span> <span class="token keyword">var</span> resultMon Monster <span class="token comment">//1. 判断文件路径是否合法</span> <span class="token boolean">_</span><span class="token punctuation">,</span>err <span class="token operator">:=</span> os<span class="token punctuation">.</span><span class="token function">Lstat</span><span class="token punctuation">(</span>unMarPath<span class="token punctuation">)</span> <span class="token keyword">if</span> os<span class="token punctuation">.</span><span class="token function">IsNotExist</span><span class="token punctuation">(</span>err<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> resultMon <span class="token punctuation">}</span> <span class="token comment">//2. 读取文件内容</span> readSplice<span class="token punctuation">,</span>rdErr <span class="token operator">:=</span> ioutil<span class="token punctuation">.</span><span class="token function">ReadFile</span><span class="token punctuation">(</span>unMarPath<span class="token punctuation">)</span> <span class="token keyword">if</span> rdErr <span class="token operator">!=</span> <span class="token boolean">nil</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> resultMon <span class="token punctuation">}</span> err <span class="token operator">=</span> json<span class="token punctuation">.</span><span class="token function">Unmarshal</span><span class="token punctuation">(</span>readSplice<span class="token punctuation">,</span><span class="token operator">&</span>resultMon<span class="token punctuation">)</span> <span class="token keyword">if</span> err <span class="token operator">!=</span> <span class="token boolean">nil</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> Monster<span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">return</span> resultMon <span class="token punctuation">}</span> <span class="token keyword">func</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token punctuation">}</span> </code></pre> 到此这篇关于“golang 中的序列化和反序列化”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
golang结构体tag的使用
python如何安装pickle
Python序列化和反序列化
PHP中SERIALIZE和JSON序列化与反序列化的区别
PHP序列化和反序列化语法差异问题
c#序列化和反序列化Json的方法
golang url 收集
python什么是反序列化?
php 序列化与反序列化的实例详解
c#序列化实例详解

[关闭]
~ ~