【问题标题】:Nested Json as input in POST method嵌套 Json 作为 POST 方法中的输入
【发布时间】:2012-03-21 07:52:33
【问题描述】:

我使用 Fiddler 来调用我的方法。以下是参数:

{"timestamp":"",
"json":
    {
        "something":[{"text":"bla","status":"1"},{"text":"sfdf","status":"1"}],
        "somethingElse":[{"description":"description""status":"1"}],
        "som1":[{"id":"1""status":"1"}]
    }
 }

方法的路径是正确的。这是签名:

public void MyMethod(string timestamp, string json)

但它永远不会被调用。如何修改我的方法以使其被调用?参数'json'应该不是字符串吗?

我通过 Fiddler 拨打电话。我的方法是在 C# 中。该项目是 Wcf 服务。

我尝试将json的类型从字符串更改为对象,方法被调用,但是json没有值。

【问题讨论】:

  • 我想知道您使用的是什么语言以及您的安装环境是什么?请重新标记并添加更多信息。
  • @NickWeaver 我通过 Fiddler 拨打电话。我的方法是在 C# 中。
  • WCF、Web 服务、Web API、Open Rasta?
  • @Srcee,你为这个服务使用什么绑定?
  • 当您将其从字符串更改为对象时,它会被调用,但 json 没有值,因为您将类型用作通用对象。尝试为 json 参数使用特定类型,因为框架将能够将值反序列化为该特定类型的对象

标签: c# json wcf rest


【解决方案1】:

在你的界面中试试这个,

 public interface IRestFulWCF
{
    [OperationContract(Name = "MyMethod")]
    [WebInvoke(
        RequestFormat=WebMessageFormat.Json,
        UriTemplate="/Example",
        Method="POST",
        BodyStyle=WebMessageBodyStyle.WrappedResponse)
    ]
    public void MyMethod(string timestamp, string json) ;

}

如果这对您没有帮助,请在此处发布您的界面详细信息 end web.config。

【讨论】:

    【解决方案2】:

    我所做的是创建一个具有以下属性的新类:List、List、List,并且我更改了方法:

    public void MyMethod(string timestamp, theNewClass json) ;
    

    它成功了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2021-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多