JSON没有正确发布

时间:2016-05-08 03:02:00

标签: javascript jquery json api post

所以我试图添加一个带有一堆属性的对象。

这是我尝试$ .post

的对象
({"fname" : fname,
          "lname" : lname,
          "gender" : gender,
          "traits" : {
          "iq" : intellect,
          "height" : height,
          "speed" : speed,
          "weight" : weight,
          "stamina" : stamina,
          "toughness" : toughness
          },
          "homeState" : homeState,
          "country" : country
         });

在发布对象之前,一切正常。我可以obj.traits.iq,它将返回所需的确切iq等,看看检查员,"特征"作为一个对象出现。

使用此功能发布问题后,问题就开始了

$.post( url, obj, function(data){
console.log(data);})
}

对象被发布,我可以访问它,但它的格式化很奇怪。 而不是显示为"traits": Object;的特征 它显示为traits[iq]: 100, traits[height]: 5'6等。它不会显示为可访问的对象,而只是自动显示该格式的所有特征。我究竟做错了什么?我甚至不知道要查找什么,或者为什么会发生这种情况。

这导致的问题是API中有其他对象正确返回,其中" traits"显示为"traits":object,而不是traits[iq]: 100 traits[height]: 5'6等。这导致我围绕API编写的所有功能都无法处理我添加的任何新对象。

API信息:

示例请求

POST /apikey/players HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: --------

{
    "fname": "Steve",
    "lname": "Harley",
    ...
}

示例响应:帖子应该返回具有新id属性的对象

HTTP/1.1 201 Created
Content-Type: application/json; charset=utf-8
Date: Fri, 10 SEPT 2014 12:24:28 GMT

{
    "id": 11,
    "fname": "Steve",
    "lname": "Harley",
        ...
}

2 个答案:

答案 0 :(得分:1)

看起来api期待json,这不是你发送的东西 要发送json,您必须将数据编码为json和se

$.post( {
    url: url, 
    data: JSON.stringify(obj), 
    contentType: 'application/json',
    success: function(data){
        console.log(data);
    }
});

答案 1 :(得分:0)

某些API可以根据我们在请求中指定的格式向我们发送不同格式的响应(例如,这种类型的API可以通过ASP.NET轻松完成)。您是否尝试将 dataType 参数明确指定为 json ,就像这样?

$.post(url, obj, function(data) {
    console.log(data);
}, "json");