Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#泛型处理程序中引用从javascript接收的反序列化对象属性?_Javascript_C#_Ajax_Generic Handler - Fatal编程技术网

如何在C#泛型处理程序中引用从javascript接收的反序列化对象属性?

如何在C#泛型处理程序中引用从javascript接收的反序列化对象属性?,javascript,c#,ajax,generic-handler,Javascript,C#,Ajax,Generic Handler,我有一个JavaScript脚本,可以进行jQuery AJAX调用,并在“data”属性中传递一个序列化的JavaScript对象: 数据:{Specific:JSON.stringify({DAY:“1”,DEP:“2”,CARRIER:“3”, FLT:“4”,LEGCD:“5”} 它在C#通用处理程序中接收,因此: var Specific = JsonConvert.DeserializeObject(context.Request.Params["Specific"]); 在Vis

我有一个JavaScript脚本,可以进行jQuery AJAX调用,并在“data”属性中传递一个序列化的JavaScript对象:

数据:{Specific:JSON.stringify({DAY:“1”,DEP:“2”,CARRIER:“3”, FLT:“4”,LEGCD:“5”}

它在C#通用处理程序中接收,因此:

var Specific = JsonConvert.DeserializeObject(context.Request.Params["Specific"]);
在Visual Studio调试器中的通用处理程序中,我可以看到收到的对象

具体={{“日期”:“部门”:“承运人”:“航班”:”, “LEGCD”:“}”

我的问题是,如何引用接收对象的属性(日期、DEP、FLT等)

我尝试了
Specific.DAY
Specific[“DAY”]
,但没有成功。

而不是使用

var Specific = JsonConvert.DeserializeObject(context.Request.Params["SpecificFlt"]);
最后得到一个类型为“Specific”的
System.Object
,它可能有助于反序列化为自定义类型,如下所示:

public class SpecificObj
{
    public string DAY {get; set;}
    public string DEP {get; set;}
    public string CARRIER {get; set;}
    public string FLT {get; set;}
    public string LEGCD {get; set;}
}

可以使用更新版本的C#以其他方式进行此反射,如以下其中一个答案所述:


如果不想创建类,以下操作也可以

var specific = JObject.Parse(json);
// specific["DAY"] alone will return a JToken (JValue in this case),
// so use the explicit conversion to string
var day = (string)specific["DAY"];
或者,如果所有值都是字符串

var specific = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
var day = specific["DAY"]
var-specific=JsonConvert.DeserializeObject(json);
var日=特定[“日”]

如果JSON中不存在
DAY
,第一个将返回
null
,第二个将抛出
KeyNotFoundException

我不确定双卷曲“{{”和“}}”的意义。这与此有关吗?为什么不直接执行
数据:{SpecificFit:{DAY:“1”,DEP:}2}
我宁愿想出一个解决方案,而不是仅仅为一个简单的数据结构创建一个类。你能想出一种方法来引用我拥有的对象吗?如果不能,那我就得走你的路了。谢谢!@Kirby for ASP.Net MVC或Web API为compl创建一个模型是正常的ASP.Net将为您自动从JSON反序列化的ex对象。实际上,在考虑这个问题时,我按照您最初的建议使用了您的类示例。我希望避免我的App_代码文件夹中充斥着可能分散在各处的数十个小实用程序类。但是,我能够将此实用程序类作为嵌套类添加到t中通用处理程序本身是完美的,因为它的定义就在将使用它的类中,所有内容都是自包含的,并且组织得更好。谢谢!(注意,它在第一次尝试中也起了作用!;-)
var specific = JObject.Parse(json);
// specific["DAY"] alone will return a JToken (JValue in this case),
// so use the explicit conversion to string
var day = (string)specific["DAY"];
var specific = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);
var day = specific["DAY"]