C# litJson 使用方法
对一般数据进行序列化和反序列化操作
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 使用方法的更多相关文章
- 【Unity游戏开发】跟着马三一起魔改LitJson
一.引子 在游戏开发中,我们少不了和数据打交道,数据的存储格式可谓是百花齐放,xml.json.csv.bin等等应有尽有.在这其中Json以其小巧轻便.可读性强.兼容性好等优点受到广大程序员的喜爱. ...
- C#编程 JSON操作
JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更易解析.JSON跟XML一样是一种是数据格式. JSON 使用 JavaScript 语法来描述数据对象,但是 ...
- javaSE27天复习总结
JAVA学习总结 2 第一天 2 1:计算机概述(了解) 2 (1)计算机 2 (2)计算机硬件 2 (3)计算机软件 2 (4)软件开发(理解) 2 (5) ...
- [C#技术] .NET平台开源JSON库LitJSON的使用方法
一个简单示例: String str = "{’name’:’cyf’,’id’:10,’items’:[{’itemid’:1001,’itemname’:’hello’},{’itemi ...
- (转).NET平台开源JSON库LitJSON的使用方法
一个简单示例: String str = "{’name’:’cyf’,’id’:10,’items’:[{’itemid’:1001,’itemname’:’hello’},{’itemi ...
- .NET平台开源JSON库LitJSON的使用方法
下载地址:LitJson.dll下载 一个简单示例: String str = "{'name':'cyf','id':10,'items':[{'itemid':1001,'itemnam ...
- 关于litJson的System.InvalidCastException
最近在做一个Unity3D的项目,用到了litJson库, 它比JavaScript里的JSON解析更加严格, 有时候解析数据的时候会出现类型不对. 比如说 {"data":12} ...
- 解决json日期格式问题的3种方法
这篇文章主要介绍了解决json日期格式问题的3种方法 ,需要的朋友可以参考下 开发中有时候需要从服务器端返回json格式的数据,在后台代码中如果有DateTime类型的数据使用系统自带的工具类序列化后 ...
- 【Unity3D插件】在Unity中读写文件数据:LitJSON快速教程
作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 介绍 JSON是一个简单的,但功能强大的序列 ...
随机推荐
- codechef Little Elephant and Bombs题解
The Little Elephant from the Zoo of Lviv currently is on the military mission. There are N enemy bui ...
- 关于DM8168中移植算法速度慢、效率低的新发现
有不少的朋友,特别是刚刚接触DSP的朋友.基于DVRRDK编写C代码发现执行速度特别慢,我在上面简单的对每一个像素的UV分量赋值=0x80,这样就成了灰度图像.对1080P图像进行操作,发现处理每帧要 ...
- [ Javascript ] 内存泄露以及循环引用解析
内存泄露 在javascript中,我们非常少去关注内存的管理. 我们创建变量,使用变量,浏览器关注这些底层的细节都显得非常正常. 可是当应用程序变得越来越复杂而且ajax化之后,或者用户在一个页面停 ...
- 关于move_uploaded_file()出错的问题
move_upload0ed_file()函数返回參数较少.可是引起出错的原因却有非常多,所以对于刚開始学习的人难免会遇到问题. 出错原因大概有下面三点: 1.假设检測到文件不是来自post上传.这个 ...
- SpringMVC 拦截器不拦截静态资源的三种处理方式方法
方案一.拦截器中增加针对静态资源不进行过滤(涉及spring-mvc.xml) <mvc:resources location="/" mapping="/**/* ...
- php basic syntax
php basic syntax PHP(Hypertext Preprocessor,超文本预处理器). 一.PHP入门 1.指令分隔符“分号” 语义分为两种:一种是在程序中使用结构 ...
- Node.js:Strea
ylbtech-Node.js:Stream 1.返回顶部 1. Node.js Stream(流) Stream 是一个抽象接口,Node 中有很多对象实现了这个接口.例如,对http 服务器发起请 ...
- guice整合struts2与jpa,guice的使用(九)
传统我们开发一般使用ssh,但是有些微服务应用的项目我们不需要这么臃肿的框架做开发,于是采用了guice+struts2+guice作为框架组合进行了开发. 先看我们项目引用的jar包: 使用的时候一 ...
- 【华科考研机试题】最长&最短文本
题目 输入多行字符串,请按照原文本中的顺序输出其中最短和最长的字符串,如果最短和最长的字符串不止一个,请全部输出. 解题思路 1.输入所有字符串(有空格不另算字符串). 2.将char*字符串转换成s ...
- Python 之 面向对象(一)
一.dir内置函数 在标识符/数据后输入一个.,然后按下TAB键,ipython会 提示该对象能够调用的方法列表 使用内置函数dir传入标识符/数据后,可以查看对象内所有的属性及方法 #查看注释 de ...