C# litJson 使用方法

来源:互联网 发布:java乱码转换成中文 编辑:程序博客网 时间:2024/06/18 03:42

对一般数据进行序列化和反序列化操作


<code class="hljs cs has-numbering"> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> jsonTest() {            <span class="hljs-comment">//</span>            JsonData jd = <span class="hljs-keyword">new</span> JsonData();            jd[<span class="hljs-string">"result"</span>] = <span class="hljs-number">1</span>;            jd[<span class="hljs-string">"user"</span>] = <span class="hljs-keyword">new</span> JsonData();<span class="hljs-comment">//**新添加一层关系时,需要再次 new** JsonData()</span>            jd[<span class="hljs-string">"user"</span>][<span class="hljs-string">"name"</span>] = <span class="hljs-string">"zhang"</span>;            jd[<span class="hljs-string">"user"</span>][<span class="hljs-string">"password"</span>] = <span class="hljs-number">123456</span>;            <span class="hljs-keyword">string</span> jsonData = JsonMapper.ToJson(jd);            Console.WriteLine(jsonData);            <span class="hljs-comment">//</span>            JsonData deJson=JsonMapper.ToObject(jsonData);            <span class="hljs-keyword">int</span> result = <span class="hljs-keyword">int</span>.Parse(deJson[<span class="hljs-string">"result"</span>].ToJson());            <span class="hljs-keyword">string</span> name = deJson[<span class="hljs-string">"user"</span>][<span class="hljs-string">"name"</span>].ToString();            <span class="hljs-keyword">int</span> psw = <span class="hljs-keyword">int</span>.Parse(deJson[<span class="hljs-string">"user"</span>][<span class="hljs-string">"password"</span>].ToString());            Console.WriteLine( <span class="hljs-string">"result="</span>+result);            Console.WriteLine(<span class="hljs-string">"name="</span>+name);            Console.WriteLine(<span class="hljs-string">"psw="</span>+psw);        }</code>

运行结果
{“result”:1,”user”:{“name”:”zhang”,”password”:123456}}
result=1
name=zhang
psw=123456

对数据对象进行序列化和反序列化操作


创建对象

<code class="hljs cs has-numbering">  class Adress    {        <span class="hljs-keyword">public</span> <span class="hljs-keyword">string</span> province { <span class="hljs-keyword">set</span>; <span class="hljs-keyword">get</span>; }        <span class="hljs-keyword">public</span> <span class="hljs-keyword">string</span> city { <span class="hljs-keyword">set</span>; <span class="hljs-keyword">get</span>; }    }    class Person    {        <span class="hljs-keyword">public</span> <span class="hljs-keyword">string</span> name { <span class="hljs-keyword">set</span>; <span class="hljs-keyword">get</span>; }        <span class="hljs-keyword">public</span> <span class="hljs-keyword">int</span> age { <span class="hljs-keyword">set</span>; <span class="hljs-keyword">get</span>; }        <span class="hljs-keyword">public</span> Adress adress { <span class="hljs-keyword">set</span>; <span class="hljs-keyword">get</span>; }    }</code>

操作

<code class="hljs avrasm has-numbering">static void jsonTest2()        {            Person p1 = new Person()<span class="hljs-comment">;</span>            p1<span class="hljs-preprocessor">.name</span> = <span class="hljs-string">"zhangsan"</span><span class="hljs-comment">;</span>            p1<span class="hljs-preprocessor">.age</span> = <span class="hljs-number">23</span><span class="hljs-comment">;</span>            string jsonData = JsonMapper<span class="hljs-preprocessor">.ToJson</span>(p1)<span class="hljs-comment">;</span>            Console<span class="hljs-preprocessor">.WriteLine</span>(<span class="hljs-string">"json="</span> + jsonData)<span class="hljs-comment">;</span>            Person p = JsonMapper<span class="hljs-preprocessor">.ToObject</span><Person>(jsonData)<span class="hljs-comment">;</span>            Console<span class="hljs-preprocessor">.WriteLine</span>(<span class="hljs-string">"name="</span> + p<span class="hljs-preprocessor">.name</span> + <span class="hljs-string">"  age="</span> + p<span class="hljs-preprocessor">.age</span>)<span class="hljs-comment">;</span>        }</code>

运行结果
json={“name”:”zhangsan”,”age”:23,”adress”:null}
name=zhangsan age=23

将对象和对象内容以键值对的形式进行保存


<code class="hljs avrasm has-numbering"> static void jsonTest3()        {            Person p1 = new Person()<span class="hljs-comment">;</span>            p1<span class="hljs-preprocessor">.name</span> = <span class="hljs-string">"zhangsan"</span><span class="hljs-comment">;</span>            p1<span class="hljs-preprocessor">.age</span> = <span class="hljs-number">23</span><span class="hljs-comment">;</span>            //将对象序列化为字符串            JsonData userData = JsonMapper<span class="hljs-preprocessor">.ToObject</span>(JsonMapper<span class="hljs-preprocessor">.ToJson</span>(p1))<span class="hljs-comment">;</span>            JsonData jd = new JsonData()<span class="hljs-comment">;</span>            jd[<span class="hljs-string">"user1"</span>] = new JsonData()<span class="hljs-comment">;</span>            jd[<span class="hljs-string">"user1"</span>]<span class="hljs-preprocessor">.Add</span>(userData)<span class="hljs-comment">;//以数组的格式保存数据</span>            jd[<span class="hljs-string">"user2"</span>] = new JsonData()<span class="hljs-comment">;</span>            jd[<span class="hljs-string">"user2"</span>] = userData<span class="hljs-comment">;//以对象的格式保存数据</span>            string jsonData = JsonMapper<span class="hljs-preprocessor">.ToJson</span>(jd)<span class="hljs-comment">;</span>            Console<span class="hljs-preprocessor">.WriteLine</span>(<span class="hljs-string">"json="</span> + jsonData)<span class="hljs-comment">;</span>            //把json数据反序列化为对象            JsonData json = JsonMapper<span class="hljs-preprocessor">.ToObject</span>(jsonData)<span class="hljs-comment">;</span>            Person p = JsonMapper<span class="hljs-preprocessor">.ToObject</span><Person>(json[<span class="hljs-string">"user2"</span>]<span class="hljs-preprocessor">.ToJson</span>())<span class="hljs-comment">;</span>            Console<span class="hljs-preprocessor">.WriteLine</span>(<span class="hljs-string">"name="</span> + p<span class="hljs-preprocessor">.name</span> + <span class="hljs-string">"  age="</span> + p<span class="hljs-preprocessor">.age</span>)<span class="hljs-comment">;</span>            Person pp = JsonMapper<span class="hljs-preprocessor">.ToObject</span><Person>(json[<span class="hljs-string">"user1"</span>][<span class="hljs-number">0</span>]<span class="hljs-preprocessor">.ToJson</span>())<span class="hljs-comment">;</span>            Console<span class="hljs-preprocessor">.WriteLine</span>(<span class="hljs-string">"name="</span> + pp<span class="hljs-preprocessor">.name</span> + <span class="hljs-string">"  age="</span> + pp<span class="hljs-preprocessor">.age</span>)<span class="hljs-comment">;</span>        }</code>

运行结果:user1以数组的形式保存,user2以对象的形式保存
json={“user1”:[{“name”:”zhangsan”,”age”:23,”adress”:null}],
“user2”:{“name”:”zhangsan”,”age”:23,”adress”:null}}
name=zhangsan age=23
name=zhangsan age=23

将集合数据进行序列化和反序列化


<code class="hljs php has-numbering"> <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> void jsonTest4()        {            Person p1 = <span class="hljs-keyword">new</span> Person();            p1.name = <span class="hljs-string">"zhangsan"</span>;            p1.age = <span class="hljs-number">23</span>;            Adress adress1 = <span class="hljs-keyword">new</span> Adress();            adress1.province = <span class="hljs-string">"HeNan"</span>;            adress1.city = <span class="hljs-string">"LuoYang"</span>;            p1.adress = adress1;            Person p2 = <span class="hljs-keyword">new</span> Person();            p2.name = <span class="hljs-string">"lisi"</span>;            p2.age = <span class="hljs-number">20</span>;            Adress adress2 = <span class="hljs-keyword">new</span> Adress();            adress2.province = <span class="hljs-string">"HeBei"</span>;            adress2.city = <span class="hljs-string">"HanDan"</span>;            p2.adress = adress2;            <span class="hljs-keyword">List</span><Person> <span class="hljs-keyword">list</span> = <span class="hljs-keyword">new</span> <span class="hljs-keyword">List</span><Person>();            <span class="hljs-keyword">list</span>.Add(p1);            <span class="hljs-keyword">list</span>.Add(p2);            <span class="hljs-comment">//生成json数据</span>            string listJson = JsonMapper.ToJson(<span class="hljs-keyword">list</span>);            Console.WriteLine(listJson);            Console.WriteLine(<span class="hljs-string">"------------------------"</span>);            <span class="hljs-comment">//解析json</span>            <span class="hljs-keyword">List</span><Person> personJsonList = JsonMapper.ToObject<<span class="hljs-keyword">List</span><Person>>(listJson);            <span class="hljs-keyword">for</span> (int i = <span class="hljs-number">0</span>; i < personJsonList.Count; i++)            {                Console.WriteLine(<span class="hljs-string">"name"</span> + personJsonList[i].name);            }        }</code>

运行结果
[{“name”:”zhangsan”,”age”:23,”adress”:{“province”:”HeNan”,”city”:”LuoYang”}},
{“name”:”lisi”,”age”:20,”adress”:{“province”:”HeBei”,”city”:”HanDan”}}]



0 0