Как установить / получить значение из словаря в списке? - PullRequest
0 голосов
/ 02 июля 2019

Итак, я могу получить elements.handle, но не могу получить elements.handle ~. Есть ли способ сделать это?

Я пробовал экранировать элементы символов ['handle \ ~'], но, похоже, он не работает

{"elements":[{"handle":"urn:li:emailAddres:7440721026","handle~":{"emailAddress":"abc@gmail.com"}}]}

1 Ответ

1 голос
/ 02 июля 2019

Поскольку искомое значение (abc@gmail.com) вложено в несколько слоев. Если вы хотите получить его, вам нужно получить к нему доступ соответственно.

var data = "{\"elements\":[{\"handle\":\"urn:li:emailAddres:7440721026\",\"handle~\":{\"emailAddress\":\"abc@gmail.com\"}}]}";

dynamic x = JsonConvert.DeserializeObject(data);

// x is an object with one property: elements
Console.WriteLine($"x: {x}");

// x.elements is a List (based on your question)
Console.WriteLine($"x.elements: {x.elements}");

// x.elements[0] is a Dictionary (based on your question)
Console.WriteLine($"x.elements[0]: {x.elements[0]}");

// x.elements[0]["handle~"] is another Dictionary
Console.WriteLine($"x.elements[0][handle~]: {x.elements[0]["handle~"]}");

// x.elements[0]["handle~"]["emailAddress"] is the value you want
Console.WriteLine($"x.elements[0][handle~][emailAddress]: {x.elements[0]["handle~"]["emailAddress"]}");

Это означает, что x.elements[0]["handle~"]["emailAddress"] должен получить вас abc@gmail.com.

...