由于虚线ID,JSON调用出错

时间:2018-01-21 23:50:31

标签: javascript jquery json

我在Teamup日历中使用自动化。我必须填写JSON调用中的所有字段,但是有一个字段会产生问题(" custom.telefono")。 ID的字段格式不兼容?这两个词之间的点是否会发生?我无法更改ID属性,我该如何解决?

jQuery.ajax({
            url: "https://api.teamup.com/" + CALENDAR_KEY + "/events",
            type: 'post',
            headers: {
                "Teamup-Token": API_KEY,
                "Content-Type": "application/json"
            },
            data: JSON.stringify({
                "title": title,
                "subcalendar_id": subcalendar_id,
                "start_dt": start_dt,
                "end_dt": end_dt,
                "rrule": rrule,
                "all_day": all_day,
                "who": who,
                "location": location,
                "custom.telefono": custom_telefono,  // <- not filling
                "notes": notes
            })
    });

}, false );

2 个答案:

答案 0 :(得分:0)

JSON字段名称绝对可以包含点/句点。对象键是JSON中的字符串,字符串在规范中定义如下(参见http://json.org):

  

字符串是零个或多个Unicode字符的序列,用双引号括起来,使用反斜杠转义。

正如您在JSFiddle上看到here一样,它可以正常工作:

var json = JSON.stringify({'custom.telefono': '+1-408-555-1234'});
document.body.innerHTML = json;

您确定不是因为该字段的价值而导致您遇到问题吗?您看到的实际错误是什么?

编辑查看API docs for TeamUp,看起来自定义字段应该是一个独特的JSON对象,所以你应该发送:

{
  'title': title,
  'custom': {'telefono': custom_telefono}
}

答案 1 :(得分:0)

您可以在POST方法中嵌套对象:

"custom": { 
   "telefono": custom_telefono
}

嵌套对象的复杂性也没有限制。大多数API都希望有一定程度的嵌套。