2017-07-17 2 views
0

Ich habe einen JSON etwas wie folgt aus:JSON.NET - verschachtelte Werte Erste

{ 
    "key": "Target", 
    "value": { 
     "__type": "Entity:http://schemas.microsoft.com/xrm/2011/Contracts", 
     "Attributes": [ 
     { 
      "key": "prioritycode", 
      "value": { 
      "__type": "OptionSetValue:http://schemas.microsoft.com/xrm/2011/Contracts", 
      "Value": 1 
      } 
     }, 
     { 
      "key": "completeinternalreview", 
      "value": false 
     }, 
     { 
      "key": "stepname", 
      "value": "10-Lead" 
     }, 
     { 
      "key": "createdby", 
      "value": { 
      "__type": "EntityReference:http://schemas.microsoft.com/xrm/2011/Contracts", 
      "Id": "ca2ead0c-8786-e511-80f9-3863bb347b18", 
      "KeyAttributes": [], 
      "LogicalName": "systemuser", 
      "Name": null, 
      "RowVersion": null 
      } 
     } 
     ] 
    } 
    } 

Wie die Toke für die Schlüssel/Werte für den Wert des Schlüssels suchen?

ZB möchte ich den Schlüssel Wertpaar ‚completeinternalreview‘ bekommen

+0

Nachdem Sie Ihre JSON-Zeichenfolge deserialisiert haben, haben Sie ein Objekt mit 'value.Attributes', auf dem Sie eine einfache LINQ-Abfrage durchführen können. – danielspaniol

Antwort

0

Vorausgesetzt, dass Sie eine C# Klasse wie dieses darzustellen, die Gegenstand von Ihrem JSON-Attribute:

public class MyValue 
{ 
    [JsonProperty("Attributes")] 
    public List<KeyValuePair<string, object>> Attributes { get; set; } 
} 

Sie können einfach die Zeichenfolge deserialisiert :

var result = JsonConvert.DeserializeObject<KeyValuePair<string, MyValue>>(jsonString); 

und dann mit dem richtigen Schlüssel-Wert-Paar finden:

var kvp = result.Value.Attributes.Find(a => a.Value == "completeinternalreview"); 
+0

Ausgezeichnet, genau was ich brauchte! – Stanza

Verwandte Themen