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

在.NET中使用Newtonsoft.Json转换,读取,写入

2009-12-07 21:37 597 查看
using
Newtonsoft.Json;



using
Newtonsoft.Json.Converters;

//把Json
字符串反序列化为对象

目标对象=JavaScriptConvert.DeserializeObject(JSON字符串,typeof
(目标对象));

//把目标对象序列化为Json
字符串

string
Json
字符串=JavaScriptConvert
.SerializeObject(目标对象);


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