我正在尝试在ashx webhandler中访问post数据,在一个MVC项目中我使用Newtonsoft.Json来实现这一点。
Dictionary<string, string> postData = JsonConvert.DeserializeObject<Dictionary<string, string>>(data);
这导致了一个字典,我可以用
访问帖子数据 if (postData.ContainsKey("myKey"))
{
someVar = postData["myKey"];
}
在另一个项目ASP.NET 3.5中我似乎没有可用的Newtonsoft,我尝试使用:
object postData = new JavaScriptSerializer().DeserializeObject(data);
这个方法应该返回一个对象图,如果我在visual studio中查看调试器,它似乎工作正常, 我可以看到我发布的数据:
如果输入postData,如何访问此对象中的数据?我得到的唯一选项是:Equals,GetHashCode,GetType和ToString
我试过postData [0] .value;
但是这会产生错误:无法应用索引。
答案 0 :(得分:2)
尝试使用自定义类型而不是对象,看看它是否有效
public class yourKeyvalue
{
public string _Key{ get; set; }
public string _value{ get; set; }
}
var postData = new JavaScriptSerializer().Deserialize<yourKeyvalue>(data);
var Key = postData._Key
var Value = postData._value
答案 1 :(得分:1)
DeserializeObject
输出字典,因此您应该可以执行此操作:
var postData = new JavaScriptSerializer().DeserializeObject(data) as Dictionary<string, object>;
var filename = postData["file"];