Newtonsoft.Json序列化和反序列

//把Json 字符串反序列化为对象
目标对象 = JavaScriptConvert.DeserializeObject(JSON字符串, typeof (目标对象));
//把目标对象序列化为Json 字符串


string

 Json

字符串 = JavaScriptConvert
.SerializeObject(目标对象);这里下载:http://www.newtonsoft.com/products/json/
安装:
   1. 解压下载文件,得到Newtonsoft.Json.dll
   2.在项目中添加引用..
 序列化和反序列在.net项目中:

view plaincopy to clipboardprint?
Product product = new Product();  
   
product.Name = "Apple";  
product.Expiry = new DateTime(2008, 12, 28);  
product.Price = 3.99M;  
product.Sizes = new string[] { "Small", "Medium", "Large" };  
   
string output = javascriptConvert.SerializeObject(product);  
//{  
//  "Name": "Apple",  
//  "Expiry": new Date(1230422400000),  
//  "Price": 3.99,  
//  "Sizes": [  
//    "Small",  
//    "Medium",  
//    "Large"  
//  ]  
//}  
   
Product deserializedProduct = (Product)javascriptConvert.DeserializeObject(output, typeof(Product)); 
Product product = new Product();
 
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = new string[] { "Small", "Medium", "Large" };
 
string output = javascriptConvert.SerializeObject(product);
//{
//  "Name": "Apple",
//  "Expiry": new Date(1230422400000),
//  "Price": 3.99,
//  "Sizes": [
//    "Small",
//    "Medium",
//    "Large"
//  ]
//}
 
Product deserializedProduct = (Product)javascriptConvert.DeserializeObject(output, typeof(Product));
 

读取JSON

view plaincopy to clipboardprint?
string jsonText = "['JSON!',1,true,{property:'value'}]";  
   
JsonReader reader = new JsonReader(new StringReader(jsonText));  
   
Console.WriteLine("TokenType/t/tValueType/t/tValue");  
   
while (reader.Read())  
{  
    Console.WriteLine(reader.TokenType + "/t/t" + WriteValue(reader.ValueType) + "/t/t" + WriteValue(reader.Value))  

string jsonText = "['JSON!',1,true,{property:'value'}]";
 
JsonReader reader = new JsonReader(new StringReader(jsonText));
 
Console.WriteLine("TokenType/t/tValueType/t/tValue");
 
while (reader.Read())
{
    Console.WriteLine(reader.TokenType + "/t/t" + WriteValue(reader.ValueType) + "/t/t" + WriteValue(reader.Value))
}

结果显示:

TokenType ValueType Value
StartArray  null  null 
String  System.String  JSON! 
Integer  System.Int32  1 
Boolean  System.Boolean  True 
StartObject  null  null 
PropertyName  System.String  property 
String  System.String  value 
EndObject  null  null 
EndArray
 null  null
 

lview plaincopy to clipboardprint?
JSON写入:  
StringWriter sw = new StringWriter();  
JsonWriter writer = new JsonWriter(sw);  
   
writer.WriteStartArray();  
writer.WriteValue("JSON!");  
writer.WriteValue(1);  
writer.WriteValue(true);  
writer.WriteStartObject();  
writer.WritePropertyName("property");  
writer.WriteValue("value");  
writer.WriteEndObject();  
writer.WriteEndArray();  
   
writer.Flush();  
   
string jsonText = sw.GetStringBuilder().ToString();  
   
Console.WriteLine(jsonText);  
// ['JSON!',1,true,{property:'value'}]  
JSON写入:
StringWriter sw = new StringWriter();
JsonWriter writer = new JsonWriter(sw);
 
writer.WriteStartArray();
writer.WriteValue("JSON!");
writer.WriteValue(1);
writer.WriteValue(true);
writer.WriteStartObject();
writer.WritePropertyName("property");
writer.WriteValue("value");
writer.WriteEndObject();
writer.WriteEndArray();
 
writer.Flush();
 
string jsonText = sw.GetStringBuilder().ToString();
 
Console.WriteLine(jsonText);
// ['JSON!',1,true,{property:'value'}] 

这里会打印出: ['JSON!',1,true,{property:'value'}] .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值