JSON.NET(http://json.codeplex.com/,https://github.com/JamesNK/Newtonsoft.Json)使用来将.NET中的对象转换为JSON字符串(序列化?),或者将JSON字符串转换为.NET中已有类型的对象(反序列化?)

首先为了例子随便定义一个类型:

public class Product
{
public string Name { get; set; }
public DateTime Expiry { get; set; }
public decimal Price { get; set; }
public string[] Sizes { get; set; } public override string ToString()
{
return string.Format("Name:{0},Expiry:{1},Price:{2},SizesCount:{3}"
, Name, Expiry, Price, Sizes.Length);
}
}

初始化对象:

public static void Main(string[] passwordargs)
{
Product product = new Product()
{
Name = "android",
Expiry = DateTime.Now,
Price = ,
Sizes = new string[] { "1.5", "2.2", "4.1" }
};
}

进行到JSON的转换:

Console.WriteLine(JsonConvert.SerializeObject(product));

输出结果:

{"Name":"android","Expiry":"2013-08-30T09:50:11.5147845+08:00","Price":2000.0,"Sizes":["1.5","2.2","4.1"]}

其它看起来一切正常,除了这个日期有点怪

格式化日期:

//设置日期时间的格式,与DataTime类型的ToString格式相同
IsoDateTimeConverter iso = new IsoDateTimeConverter();
iso.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; Console.WriteLine(JsonConvert.SerializeObject(product, iso));

输出结果:

{"Name":"android","Expiry":"2013-08-30 09:53:58","Price":2000.0,"Sizes":["1.5","2.2","4.1"]}

从JSON到对象的转换:

string str = "{\"Name\":\"android\",\"Expiry\":\"2013-08-30 09:53:58\",\"Price\":2000.0,\"Sizes\":[\"1.5\",\"2.2\",\"4.1\"]}";

Product p = (Product)JsonConvert.DeserializeObject(str, typeof(Product));

Console.WriteLine(p.ToString());

输出结果:

Name:android,Expiry:2013/8/30 9:53:58,Price:2000.0,SizesCount:3

从JSON到键值对的转换:

string strJson = @"{""Name1"": ""小明"",""Name2"": ""小花"",""Name3"": ""小红""}";

Dictionary<string, string> _dictionary = JsonConvert.DeserializeObject<Dictionary<string, string>>(strJson);

foreach (KeyValuePair<string, string> kp in _dictionary)
{
Console.WriteLine(kp.Key + ":" + kp.Value);
}

输出结果:

Name1:小明
Name2:小花

Name3:小红

从字符串转换到JSON对象,以及JSON对象的简单使用:

string strJson2 = @"{ ""student"": { ""Name1"": ""小明"" , ""Name2"": ""小花"" , ""Name3"": ""小红""} }";

JObject jsonObj = JObject.Parse(strJson2);

Console.WriteLine(jsonObj["student"]["Name1"].ToString());
Console.WriteLine(jsonObj["student"]["Name2"].ToString());
Console.WriteLine(jsonObj["student"]["Name3"].ToString());

输出结果:

小明
小花

小红

直接生成JSON对象:

JObject json =
new JObject(
new JProperty("Channel",
new JObject(
new JProperty("title", "JSON"),
new JProperty("link", "JSON.NET"),
new JProperty("description", "JSON.NET Description"),
new JProperty("items",
new JArray(
new JObject(new JProperty("haha1", "")),
new JObject(new JProperty("haha2", "")),
new JObject(new JProperty("haha3", ""))
))))); Console.WriteLine(json.ToString());

输出结果:

{
  "Channel": {

"title": "JSON",

"link": "JSON.NET",

"description": "JSON.NET Description",

"items": [

{

"haha1": "123"

},

{

"haha2": "456"

},

{

"haha3": "789"

}

]

}

}

暂时先记录这么多,以后再继续补充

JSON.NET 简单的使用的更多相关文章

  1. json-lib简单处理json和对json的简单介绍

    JSON 1.json是什么? *它是js提供的一种数据交换格式 2.json的语法 *{}:是对象! >属性名必须使用双引号括起来!单引号不行!!! >属性值: *null *数值 *数 ...

  2. js中json数据简单处理(JSON.parse()和js中嵌套html)

    js中json数据简单处理(JSON.parse()和js中嵌套html) 一.总结 1.html中嵌套js:<script>js代码</script> 2.js中嵌套html ...

  3. Python中json的简单读写操作

    Python中json的简单读写操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...

  4. golang json 包简单分析

    首先上代码: func main() { b := true a1, _ := json.Marshal(b) a2, _ := Marshal(b) fmt.Println(string(a1)) ...

  5. android json 解析 简单示例

    1 下面是一个简单的json 解析的demo,废话不多说,直接上代码 package com.sky.gallery; import java.io.ByteArrayOutputStream; im ...

  6. Android+Servlet+MySql+JSON实现简单的数据查询操作--C/S架构

    本例简单地实现Android客户端与服务器端交互,主要是通过客户端输入内容(学号)提交到服务器端,服务器端与数据库交互去查询相应信息(姓名).根据这个做个完整的安卓登录是没问题的.本例数据库服务器都采 ...

  7. java post请求的表单提交和json提交简单小结

    在java实现http请求时有分为多种参数的传递方式,以下给出通过form表单提交和json提交的参数传递方式: public String POST_FORM(String url, Map< ...

  8. JSON的简单介绍以及C语言的JSON库使用

    JSON概述 JSON: JavaScript 对象表示法( JavaScript Object Notation) .是一种轻量级的数据交换格式. 它基于ECMAScript的一个子集. JSON采 ...

  9. Struts2+json+hignchart(简单柱状图实现--适合jquery小白)

    做了一个简单的基于Struts2 + Json + HighChart的小例子,费了一下午+晚上的时间,虽然简单,但对于我这种Jquery+Ajax小白的人还是很值得记录的. 哈哈哈 # 0. 关键点 ...

随机推荐

  1. pyhon之Tkinter实例化学习

    Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口,位Python的内置模块,直接import tkinter即可使用. 作为实践, 用Tkinter ...

  2. Zbrush遮罩边界该怎么实现羽化和锐化

    很多情况下为了雕刻制图需要,在ZBrush®中不仅要使用边缘清晰的遮罩,有时还要将遮罩边缘变得模糊,做羽化效果.那么如何在ZBrush中实现羽化遮罩效果或锐化遮罩效果,本文将做详细讲解. 若有疑问可直 ...

  3. hihocoder-1391&&北京网赛09 Countries(优先队列)

    题目链接: Countries 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 There are two antagonistic countries, country ...

  4. HDU 1102 Constructing Roads

    Constructing Roads Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  5. ZOJ 3659 & HDU 4424 Conquer a New Region (并查集)

    这题要用到一点贪心的思想,因为一个点到另一个点的运载能力决定于其间的边的最小权值,所以先把线段按权值从大到小排个序,每次加的边都比以前小,然后合并集合时,比较 x = findset(a) 做根或 y ...

  6. Android系列之UI组件----Menu菜单

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  7. 利用WinPcap模拟网络包伪造飞秋闪屏报文

    起因 不知道从什么时候开始,同事开始在飞秋上发闪屏振动了,后来变本加厉,成了每日一闪.老闪回去也比较麻烦,作为程序猿呢,有没有什么偷懒的办法呢?(同事负责用户体验,不大懂编程).然后尝试了以下思路: ...

  8. jsp 微信公众平台 token验证(php、jsp)(转载)

    微信公众平台现在推出自动回复消息接口,但是由于是接口内容用的是PHP语言写的,很多地方操作起来让本人这个对java比较熟悉的小伙很别扭,所以仿照PHP的接口代码做了一套jsp语言编写的接口. 首先先把 ...

  9. andorid 自定义seekbar

    效果如图: <?xml version="1.0" encoding="utf-8"?> <resources> <style n ...

  10. 过滤掉combobox里名称相同的选项

    var pname = ""; $('#PartName').combobox({ reload: url, formatter: function (row) {//过滤comb ...