解析 Microsoft CRM Web 返回的 Odata 值 API

Parse Odata Values returned by Microsoft CRM Web API

我正在构建一个与 Microsoft Dynamics CRM 通信的 android 应用程序。目前,我正在使用生成的访问令牌访问 Web API。

调用 Web API,我能够将 Odata JSON 放入响应字符串中。

{
 "@odata.context": "[OrganizationURI]/api/data/v8.2/$metadata#accounts(name)",
 "value": [
  {
   "@odata.etag": "W/\"501097\"",
   "name": "Fourth Coffee (sample)",
   "accountid": "89390c24-9c72-e511-80d4-00155d2a68d1"
  },
  {
   "@odata.etag": "W/\"501098\"",
   "name": "Litware, Inc. (sample)",
   "accountid": "8b390c24-9c72-e511-80d4-00155d2a68d1"
  },
  {
   "@odata.etag": "W/\"501099\"",
   "name": "Adventure Works (sample)",
   "accountid": "8d390c24-9c72-e511-80d4-00155d2a68d1"
  }
  ]
 }

我想解析字符串并获取名称的值。

我尝试将字符串转换为 JSON 对象,然后尝试从中获取名称,但 returns 我得到了一个空值。

我明白了,我指的是错误的位置。使用 JSON 可视化工具(例如 JSONmate)有助于找出要引用的位置。

您必须遍历结果集并按索引获取 nameresults.value[0]["name"] 将在结果中给出第一条记录。

var results = JSON.parse(this.response);
for (var i = 0; i < results.value.length; i++) {
       var name = results.value[i]["name"];
       //do something with name        
}