首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何发布json请求

如何发布json请求
EN

Stack Overflow用户
提问于 2014-03-18 07:48:47
回答 1查看 92关注 0票数 0

我正在尝试将json请求发布到我的web api:

json:

代码语言:javascript
复制
[{
    'rows': [
        {
            'country': 'UK',
            'description': 'this is a desc',
            'gezien': true,
            'Count': 3,
            'url': 'een/twee',
            'stam': 'blabla',
            'kanaal': 'NOS'
        },
        {
            'url': 'drie/vier',
            'stam': 'divers',
            'kanaal': 'SRV'
        }

    ],
    'skip': 0,
    'take': 10,
    'total': 100
}]

我的api控制器如下所示:

代码语言:javascript
复制
 public class DataController : ApiController
    {
        // GET api/data
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/data/5
        public string Get(int id)
        {
            return "value";
        }

        // POST api/data
        public void Post([FromBody]string value)
        {
        }

        // PUT api/data/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE api/data/5
        public void Delete(int id)
        {
        }
    }

我正在尝试使用post方法,但是字符串值为空?我正在使用fiddler发布请求。

EN

回答 1

Stack Overflow用户

发布于 2014-03-18 08:59:56

您正在发送一个JSON数组,但该方法需要一个字符串。模型绑定器不知道如何处理这个问题,所以你会得到一个null。

有几种方法可以解决这个问题……

一种方法是传递一个JavaScript字符串,方法是将JSON括在引号中(必要时在字符串中使用转义引号)。该方法现在将接收一个字符串,并且模型绑定器将能够将其绑定到您的字符串参数。

第二种选择是,如果您使用的是WebAPI2,而模型绑定器使用的是Json.NET,那么您可以将参数更改为JObject类型,并传入原始的JSON。Json.NET将解析JSON并将其放入JObject中。您可以使用此JObject,也可以通过在其上调用.ToString()将其转换回JSON。

第三种选择是创建一个类来表示您的输入,并将参数更改为强类型对象。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22467731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档