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


 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. [Angular] Increasing Performance by using Pipe

    For example you make a function to get rating; getRating(score: number): string { let rating: string ...

  2. 【iOS开发系列】九宫格布局

    /** * 这个尽管非常easy,算是一个小技巧,可是碰到了就记录下来吧.积跬步,致千里嘛. */ - (void)scratchableLatex { for (int i=0; i<9; i ...

  3. C++二叉树笔试题

    #include <iostream> #include <stack> #include <queue> using namespace std; templat ...

  4. Errors occurred during the build. Errors running builder &#39;Integrated External Tool Builder&#39; on proje

    Errors occurred during the build. Errors running builder 'Integrated External Tool Builder' on proje ...

  5. selenium实例学习地址

    一个完整的maven配置selenium webdriver工程实例   http://www.spasvo.com/ceshi/open/kygncsgj/Selenium/201312209580 ...

  6. 使用UIScrollView和UIPageControl做一个能够用手势来切换图片的效果

    利用UIScrollView的滚动效果来实现,先上图: 实现过程是:在viewController里先增加UIScrollView和UIPageControl: -(void) loadView { ...

  7. vmware mac 分辨率设置

    1.安装vmware tool 2.关闭虚拟机,在设置中找到显示器项 3.选中“加速3D图形” 4.在监视器中,选中 指定监视器设置,使用任意分辨率 5.如果没有可用分辨率,手动输入,例如 1680* ...

  8. bzoj2819: Nim(博弈+树剖)

    2819: Nim 题目:传送门 题解: 很久之前学博弈的时候看过的一道水题,其实算不上博弈吧... 直接套上一个裸的树剖啊,把路径上的点值全都xor(xor满足结合率所以就不管那么多随便搞啦) do ...

  9. 国内物联网平台初探(五) ——机智云IoT物联网云服务平台及智能硬件自助开发平台

    平台定位 机智云平台是致力于物联网.智能硬件云服务的开放平台.平台提供了从定义产品.设备端开发调试.应用开发.产测.运营管理等覆盖智能硬件接入到运营管理全生命周期服务的能力. 机智云平台为开发者提供了 ...

  10. mod_wsgi 初体验

    1, 安装 ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/bin/python3 make && ...