namespace
SL_DataContractJsonserializer
{
public
partial
class
Page:UserControl
{
public
Page()
{
InitializeComponent();
}
//
Thisusesaneventhandler,notSLdatabinding
void
OnClick(
object
sender,EventArgsargs)
{
txtOutput1.Text
=
"
CreateaUserobjectandserializeit.
"
;
String
json
=
WriteFromObject();
txtOutput2.Text
=
json.ToString();
Displays:{"Age":42,"Name":"Bob"}
txtOutput3.Text
=
DeserializethedatatoaUserobject.
String
jsonString
=
{'Name':'Bill','Age':53}
"
;
UserdeserializedUser
=
ReadToObject(jsonString);
txtOutput4.Text
=
deserializedUser.Name;
Displays:Bill
txtOutput5.Text
=
deserializedUser.Age.ToString();
Displays:53
}
CreateaUserobjectandserializeittoaJSONstream.
static
String
WriteFromObject()
{
CreateUserobject.
Useruser
=
new
User(
Bob
"
,
42
);
Createastreamtoserializetheobjectto.
@H_487_17
@memoryStre
AMMs
=
new
@H_487_17
@memoryStream(
);
serializertheUserobjecttothestream.
DataContractJsonserializerser
=
new
DataContractJsonserializer(
typeof
(User));
ser.WriteObject(ms,user);
byte
[]json
=
@H_487_17
@ms.ToArray(
); m
s.Close(
);
return
Encoding.UTF8.GetString(json,128); line-height:1.5!important">0
,json.Length);
}
DeserializeaJSONstreamtoaUserobject.
static
UserReadToObject(
String
json)
{
UserdeserializedUser
=
new
User();
MemoryStreAMMs
=
new
@H_487_17
@memoryStream(Encoding.UTF8.GetBytes(json)
); DataContractJson
serializerser
=
new
DataContractJsonserializer(deserializedUser.GetType());
deserializedUser
=
ser.ReadObject(ms)
as
User;
ms.Close();
return
deserializedUser;
}
}
[DataContract]
class
User
{
[DataMember]
String
Name{
get
;
set
;}
[DataMember]
int
Age{
set
;}
public
User(){}
public
User(
String
newName,
int
newAgE)
{
Name
=
newName;
Age
=
newAge;
}
}
}