所以我将一个Json对象发送到我的服务器,我想将它转换为我称之为PersonalPreferences的强类型用户类型对象。
这是JS
{
"PersonalPreferences": [
{
"FavoriteFood": "Pasta with butter and cheese"
},
{
"FavoriteSport": "Submission Wrestling"
},
{
"FavoriteGame": "Starcraft 2"
},
{
"FavoriteMusic": "Hip Hop"
}
]
}
我创建了一个与我发送的Json对象匹配的Class。
[DataContract]
public class PersonalPreferences
{
[DataMember]
public string FavoriteFood { get; set; }
[DataMember]
public string FavoriteSport { get; set; }
[DataMember]
public string FavoriteGame { get; set; }
[DataMember]
public string FavoriteMusic { get; set; }
public PersonalPreferences()
{
}
public PersonalPreferences(string favoriteFood, string favoriteGame, string favoriteMusic, string favoriteSport)
{
this.FavoriteFood = favoriteFood;
this.FavoriteGame = favoriteGame;
this.FavoriteMusic = FavoriteMusic;
this.FavoriteSport = favoriteSport;
}
}
这是我的处理程序,它接收请求并将其转换为用户类型对象。 我的问题是PersonalPreference对象是空的。 jsSerializer.Deserialize调用空构造函数,并且Json对象中的值不会传递给PersonalPreference对象。 我已经检查了Json值作为字符串存在于Request中。
[WebService(Namespace = "http://localhost:53243")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class JSonTestHandler : IHttpHandler, System.Web.SessionState.IReadOnlySessionState
{
public void ProcessRequest(HttpContext context)
{
string jsonData = new StreamReader(context.Request.InputStream, System.Text.Encoding.UTF8).ReadToEnd();
var jsSerializer = new JavaScriptSerializer();
var personalPreferences = jsSerializer.Deserialize(jsonData, typeof(PersonalPreferences));
}}
答案 0 :(得分:0)
提供的json格式化字符串似乎有些不对劲。 如果使用以下json格式的字符串检查它可以正常工作:
{“FavoriteFood”:“黄油和奶酪意面”,“FavoriteSport”:“提交摔跤”,“FavoriteGame”:“星际2”,“FavoriteMusic”: “嘻哈”}
你是如何生成Json格式的字符串的?