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. ZOJ 1109 Language of FatMouse

    较简单字典树,每输入一对字符串,前一个放在字典(数组)中,后一个插入字典树中,并将其最终的flag赋为前一个在数组中的下标,再就好找了.输入的处理方法要注意一下. 代码: #include <i ...

  2. MySQL数据库学习笔记(五)----MySQL字符串函数、日期时间函数

    一.常见字符串函数: 1.CHAR_LENGTH  获取长度(字符为单位) 2.FORMAT  格式化 3.INSERT  替换的方式插入 4.INSTR  获取位置 5.LEFT/RIGHT  取左 ...

  3. [汇编] 002基础知识-CPU和寄存器

    CPU是什么 当然这里的内存不仅仅指电脑上的内存,例如:我的金士顿8G内存,七彩虹1G独显,在这里来说,显卡也是有内存的(寄存器) CPU如何控制其它部件的? 问题:CPU是如何和电脑主机中其它芯片有 ...

  4. java22 - 1 多线程之 单线程和多线程的图解

  5. Netty关闭客户端

    在启动客户端的时候,我们一般会 channelFuture.channel().closeFuture().sync(); 这是一段阻塞的代码,除非链路断了,否则是不会终止的,我们可以在handler ...

  6. 15Mybatis_输出类型

    输出类型分为两种:1.resultType          和         2.resultMap 接下来先讲解resultType: 使用resultType进行输出映射,只有查询出来的列名和 ...

  7. WP老杨解迷:开发生态两极化和榜单乱象

    Windows Phone 自2013年的一片浪潮推动下,2014年终于开始引起了各大小CP们的注意,于是大量的产品开始乘风破浪一路涌进Windows Phone平台,立即改变了榜单的格局,如今,苦B ...

  8. C语言 读取文件中特定数据

    //读取文件数据 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> struct jia ...

  9. 如何解决机器重启后MySql服务跑不起来了1067,附解决过程

    今个一位同事的mysql跑不起来了,之前还好好的,问我怎么恢复,我没在她出问题的机器上弄,在自己机器上试的,最终在CTO的指导下解决了,现记录于此. 1,首先把她的mysql安装文件夹.数据结构文件. ...

  10. 小程序基础09:视图层之WXML

    1.WXML WXML是框架设计的一套标签语言,结合基础组件,事件系统,可以构建出页面的结构. 用以下的例子来看看WXML有什么能力: 1.1数据绑定 <view>{{age}}</ ...