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


 static void jsonTest() {
//
JsonData jd = new JsonData();
jd["result"] = 1;
jd["user"] = new JsonData();//**新添加一层关系时,需要再次 new** JsonData()
jd["user"]["name"] = "zhang";
jd["user"]["password"] = 123456;
string jsonData = JsonMapper.ToJson(jd);
Console.WriteLine(jsonData);
//
JsonData deJson=JsonMapper.ToObject(jsonData);
int result = int.Parse(deJson["result"].ToJson());
string name = deJson["user"]["name"].ToString();
int psw = int.Parse(deJson["user"]["password"].ToString());
Console.WriteLine( "result="+result);
Console.WriteLine("name="+name);
Console.WriteLine("psw="+psw);
}

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

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


创建对象

  class Adress
{
public string province { set; get; }
public string city { set; get; }
}
class Person
{
public string name { set; get; }
public int age { set; get; }
public Adress adress { set; get; }
}

操作

static void jsonTest2()
{
Person p1 = new Person();
p1.name = "zhangsan";
p1.age = 23; string jsonData = JsonMapper.ToJson(p1);
Console.WriteLine("json=" + jsonData); Person p = JsonMapper.ToObject<Person>(jsonData);
Console.WriteLine("name=" + p.name + " age=" + p.age); }

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

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


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

运行结果: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

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


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

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


namezhangsan 
namelisi

http://blog.csdn.net/u011484013/article/details/51303674

C# litJson 使用方法的更多相关文章

  1. 【Unity游戏开发】跟着马三一起魔改LitJson

    一.引子 在游戏开发中,我们少不了和数据打交道,数据的存储格式可谓是百花齐放,xml.json.csv.bin等等应有尽有.在这其中Json以其小巧轻便.可读性强.兼容性好等优点受到广大程序员的喜爱. ...

  2. C#编程 JSON操作

    JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更易解析.JSON跟XML一样是一种是数据格式. JSON 使用 JavaScript 语法来描述数据对象,但是 ...

  3. javaSE27天复习总结

    JAVA学习总结    2 第一天    2 1:计算机概述(了解)    2 (1)计算机    2 (2)计算机硬件    2 (3)计算机软件    2 (4)软件开发(理解)    2 (5) ...

  4. [C#技术] .NET平台开源JSON库LitJSON的使用方法

    一个简单示例: String str = "{’name’:’cyf’,’id’:10,’items’:[{’itemid’:1001,’itemname’:’hello’},{’itemi ...

  5. (转).NET平台开源JSON库LitJSON的使用方法

    一个简单示例: String str = "{’name’:’cyf’,’id’:10,’items’:[{’itemid’:1001,’itemname’:’hello’},{’itemi ...

  6. .NET平台开源JSON库LitJSON的使用方法

    下载地址:LitJson.dll下载 一个简单示例: String str = "{'name':'cyf','id':10,'items':[{'itemid':1001,'itemnam ...

  7. 关于litJson的System.InvalidCastException

    最近在做一个Unity3D的项目,用到了litJson库, 它比JavaScript里的JSON解析更加严格, 有时候解析数据的时候会出现类型不对. 比如说 {"data":12} ...

  8. 解决json日期格式问题的3种方法

    这篇文章主要介绍了解决json日期格式问题的3种方法 ,需要的朋友可以参考下 开发中有时候需要从服务器端返回json格式的数据,在后台代码中如果有DateTime类型的数据使用系统自带的工具类序列化后 ...

  9. 【Unity3D插件】在Unity中读写文件数据:LitJSON快速教程

    作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 介绍 JSON是一个简单的,但功能强大的序列 ...

随机推荐

  1. android中常见的内存泄漏和解决的方法

    android中的内存溢出预计大多数人在写代码的时候都出现过,事实上突然认为工作一年和工作三年的差别是什么呢.事实上干的工作或许都一样,产品汪看到的结果也都一样,那差别就是速度和质量了. 写在前面的一 ...

  2. nginx tomcat glassfish session 复制配置

    1.nginx配置 [root@www1-nlb1 ~]# cat /usr/local/nginx/conf/nginx.conf | grep -v ^$ | grep -v ^# user  w ...

  3. solaris x86安装ORACLE 11.2.0.3软件时因SWAP不足报错: INFO: ld: fatal: mmap anon failed

    1.ORACLE软件安装到86%时报错,图忘截了.日志例如以下: /oracle/u01/app/oracle/product/11.2.0/ INFO: db_1/lib/sysliblist` - ...

  4. 压缩&amp;&amp;解压命令汇总

    下面是搜集的Linux系统下,压缩&&解压命令,以备參考使用.     .tar   解包: tar xvf FileName.tar   打包:tar cvf FileName.ta ...

  5. 面向对象的三大特性之二——继承(含super的使用)

    1.继承的语法:class 子类 extends 父类 例1: class Person { int age; String name; public void print1() { System.o ...

  6. hdu5355 Cake

    Problem Description There are m soda and today is their birthday. The 1-st soda has prepared n cakes ...

  7. bzoj5029: 贴小广告&&bzoj5168: [HAOI2014]贴海报

    以后做双精题请至少先跑个数据...输入都不一样... 做法就是离散化大力线段树. 记得在x+1和y-1插点 看这个数据: 1000 121 10050 8080 9950 981 56100 2002 ...

  8. 计算机网络自顶向下方法第2章-应用层(application-layer).2

    2.4 DNS:因特网的目录服务 2.4.1 DNS提供的服务 DNS的定义 实体层面看,DNS是一个由分层的DNS服务器实现的分布式数据库 协议层面看,DNS是一个使得主机能够查询分布式数据库的应用 ...

  9. shp系列(四)——利用C++进行Shx文件的读(打开)

    1.shx文件的基本情况 shx文件又叫索引文件,主要包含坐标文件的索引信息,文件中每个记录包含对应的坐标文件记录距离坐标文件的初始位置的偏移量.通过索引文件可以很方便地在坐标文件中定位到指定目标的坐 ...

  10. WRAR下载及注册

    下载过程: 1.打开winrar官网:https://www.win-rar.com 2.点击下载winrar按钮,如上图所示 3.进入下一页面,点击下载按钮即可完成下载过程 注册过程:https:/ ...