使用带有ODATA格式的javascript发布数据

时间:2016-11-29 08:14:54

标签: javascript json serialization odata

我在动态CRM上发布时将ODATA字符串转换为JSON时遇到问题。 当我试图以这种方式序列化时:

var phoneCallAssociationJsonData = '{'
               +'"@odata.id" : "https://contoso.crm4.dynamics.com/api/data/v8.1/phonecalls('+ phoneCallUid +')"'
               +'}';

并在请求中将其序列化为: JSON.stringify(phoneCallAssociationJsonData);

我得到了一个不好的回应。但是,当我使用POSTMAN发布数据时,我复制了以下JSON:

{"@odata.id" : "https://contoso.crm4.dynamics.com/api/data/v8.1/phonecalls(12a59ec0-76b5-e611-80ed-5065f38a8ad1)"}

完美无缺。 有人知道是否有一种特殊的方式来序列化odata格式的字符串?

我尝试创建javascript对象,但添加 对象。@ odata.id 是不可能的,因为 @ 不是允许的角色。

1 个答案:

答案 0 :(得分:2)

首先,不是创建一个字符串,而是创建一个OBJECT

var phoneCallAssociationJsonData = {
    "@odata.id" : "https://contoso.crm4.dynamics.com/api/data/v8.1/phonecalls("+ phoneCallUid +")"
};

然后

JSON.stringify(phoneCallAssociationJsonData);

现在应该正常工作