解析Microsoft CRM Web API返回的Odata值

时间:2018-07-21 05:59:11

标签: java android odata dynamics-crm olingo

我正在构建一个与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"
  }
  ]
 }

我想解析String并获取Name的值。

我试图将String转换为JSON对象,然后尝试从中获取名称,但是它返回了一个空值。

2 个答案:

答案 0 :(得分:1)

我弄清楚了,我指的是错误的位置。使用JSONmate之类的JSON可视化工具有助于找出要引用的位置。

答案 1 :(得分:0)

您必须遍历结果集并按索引获取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        
}