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


 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. 为什么pthread_cond_wait须要传递mutex參数

    这是来自知乎的一个问题,由@吴志强提出,有意思的是,他看了大家的回答后,突然顿悟了,同一时候也发现有人答错了,于是乎.他自己回答了自己的问题. 我看完后.发现他分析的非常精彩,于是就记录在这.以下是他 ...

  2. java SE与java EE , java ME之间的关系

    question: Which one should I install when I want to start learning Java? I'm going to start with som ...

  3. LeetCode(1) Symmetric Tree

    从简单的道题目開始刷题目: Symmetric Tree 题目:Given a binary tree, check whether it is a mirror of itself (ie, sym ...

  4. A - Red and Black(3.2.1)(搜索)

    A - Red and Black(3.2.1) Time Limit:1000MS     Memory Limit:30000KB     64bit IO Format:%I64d & ...

  5. ubuntu下安装AndroidStudio

    近期将电脑的操作系统换成了ubuntu,对于不习惯win8/win10的人来说ubuntu确实是一个不错的选择,主要的软件都ok了,至于QQ什么的,大家能够去找wine版的,或者直接下载一个叫Cros ...

  6. 【POJ 2976】 Dropping Tests

    [题目链接] http://poj.org/problem?id=2976 [算法] 0/1分数规划 [代码] #include <algorithm> #include <bits ...

  7. WPF MVVM 关闭窗体

    由于程序采用MVVM模式同时有些操作需要单独窗口来进行处理.因此就会产生窗口关闭问题, 由于是MVVM和需要操作弹出窗口中操作的内容因此就需要在mvvm进行统一处理. 网上查了几种方法采用其中一种 不 ...

  8. 修改数组数据头和尾push()、pop()和unshift()、shift()

    1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及内容. 不同的是 push().pop() 是从数组的尾部进行增减,unshift ...

  9. url 域名 主机名

    1. url = 协议//主机名(包括服务器的计算机名+域名)/路径 https:// i. cnblogs.com /index.html .com是顶级域名,从右向左,每碰到一个".&q ...

  10. ubuntu16 mysql 远程连接

    打开配置文件: sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 将下面一行注释掉: # bind-address = localhost 重启服务 sudo s ...