2017-06-27 2 views
0

Je récupère une liste d'éléments de travail à l'aide de l'API VSTS et souhaite les afficher dans mon application Web. Je peux retourner avec succès une liste des éléments de travail dans le format ci-dessous:Regex pour les éléments de travail dans l'API Team Services

{"count": 1, "value": [{"id": 246, "rev": 4, "fields": {" System.Id ": 246," System.State ":" Nouveau "," System.Title ":" test1 "}," url ":" https://example.visualstudio.com/_apis/wit/workItems/246 "}]}

J'ai essayé une expression régulière pour obtenir les valeurs de cette réponse HTTP avec le code suivant:

HttpResponseMessage getWorkItemsHttpResponse = client.GetAsync("_apis/wit/workitems?ids=" + ids + "&fields=System.Id,System.Title,System.State&asOf=" + workItemQueryResult.asOf + "&api-version=2.2").Result; 

        if (getWorkItemsHttpResponse.IsSuccessStatusCode) 
        { 
         result = getWorkItemsHttpResponse.Content.ReadAsStringAsync().Result; 

         // Regular expression to extract work item values to display  
         string parseWI = result.ToString(); 
         var match = Regex.Match(parseWI, "\"System.ID\": (.*)"); 
         workItemsToDisplay = (match.Groups[1].Value); 


        } 
       } 
      } 
     } 
     return workItemsToDisplay; 

    } 

ce refuse de retourner quoi que ce soit bien et laisse la zone de texte que j'affiche le vide dans workItemsToDisplay. Je ne suis pas familier avec les expressions régulières et je suis sûr que c'est de là que vient le problème. Vous ne savez pas si Microsoft a déjà un exemple de code pour construire un affichage des éléments de travail à partir de la réponse.

+0

C'est JSON. Utilisez un analyseur JSON. –

Répondre

0

N'utilisez pas de regex. C'est JSON, utilisez une bibliothèque d'analyse JSON (JSON.Net est le standard de facto dans le monde .NET) et vous pouvez facilement récupérer des champs spécifiques.

+0

Problèmes de création des classes correspondantes pour la chaîne JSON. Par exemple, je ne peux pas déclarer la propriété System.ID car elle contient le '.' personnage. –

+0

Il devrait y avoir beaucoup de ressources Googleable vous montrant comment utiliser JSON .NET. La réponse à la question "Comment utiliser une regex pour analyser JSON?" est "Ne pas, utilisez un outil d'analyse JSON." –