您的位置:首页 > Web前端 > JavaScript

使用NewtonSoft.JSON.dll来序列化和反序列化对象

2012-12-18 08:40 1051 查看
从这里下载:http://www.newtonsoft.com/products/json/

安装:

1.解压下载文件,得到Newtonsoft.Json.dll

2.在项目中添加引用..

序列化和反序列在.net项目中:

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

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))
}

结果显示:

TokenTypeValueTypeValue
StartArraynullnull
StringSystem.StringJSON!
IntegerSystem.Int321
BooleanSystem.BooleanTrue
StartObjectnullnull
PropertyNameSystem.Stringproperty
StringSystem.Stringvalue
EndObjectnullnull
EndArraynullnull

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'}]
.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: