我想将 JSON 对象发布到我的服务堆栈服务并在请求 DTO 中使用动态属性。到目前为止,我尝试过的所有方法都将对象保留为 NULL 值。
我使用的javascript代码:
$.getJSON(
"/api/json/reply/Hello",
{
Name: "Murphy",
Laws: {
SomeProp: "A list of my laws",
SomeArr: [
{ Title: "First law" },
{ Title: "Second law" },
{ Title: "Third law" }
]
}
},
function(data) {
alert(data.result);
}
);
接收请求的 DTO:
public class Hello
{
public string Name { get; set; }
public dynamic Laws { get; set; }
}
我还尝试在 DTO 中使用对象和 JsonObject 而不是动态的。
为了完整起见,这里的服务也是:
public class HelloService : Service
{
public object Any(Hello request)
{
return new HelloResponse { Result = "Hello, " + request.Name };
}
}
Murphy 通过 Name 属性没有任何问题,但 Laws 属性仍然为 NULL。
最后,我想以某种方式迭代(使用反射?) Laws 属性并获取所有包含的属性和值。
我不能在这里使用类型化的 DTO,因为我在开发时不知道 Laws 属性的 JSON(而且它可以经常更改)。
谢谢你的帮助!