Получить пару ключ-значение из строки JSON - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть строка json, такая как

{
  [
    "EnrityList": "Attribute",
    "KeyName": "AkeyName",
    "Value": "Avalue"
  ],
  [
    "EnrityList": "BusinessKey",
    "KeyName": "AkeyName",
    "Value": "Avalue"
  ]
}

Я сериализовал и получил массив объектов.Может ли кто-нибудь помочь мне получить пару ключ-значение из этого массива объектов.

Ответы [ 3 ]

0 голосов
/ 24 декабря 2018

Глядя на ваш пример, вы пытаетесь получить список элементов определенного типа, поэтому сначала вам понадобится класс для представления вашего типа данных.

class MyType
{    
  string  EnrityList;
  string  KeyName;
  string  Value;    
}

Затем используйте метод DesrializeObject для храненияэто в переменной

var values = JsonConvert.DeserializeObject<List<MyType>>(jsonstring);
0 голосов
/ 24 декабря 2018

Сначала преобразуйте вышеуказанную строку в правильный формат json, используя:

str=str.Replace('[', '{');
str=str.Replace(']', '}');
//replace first occurance of {
int startPos = str.IndexOf('{');
str=str.Substring(0,startPos)+" ["+str.Substring(startPos + 1);
//replace last occurance of }
int endPos = str.LastIndexOf('}');
str=str.Substring(0,endPos)+"]";

Это делает строку

str = [{"EnrityList":"Attribute","KeyName":"AkeyName","Value":"Avalue"}, {"EnrityList":"BusinessKey","KeyName":"AkeyName","Value":"Avalue"} ]   

Теперь, когда вы получили строку json, вы можете легко работатьс ним.
мы можем использовать метод, заданный

Как я могу десериализовать JSON в простой словарьв ASP.NET?

foreach(KeyValuePair<string, string> entry in myDictionary)
{
    // do something with entry.Value or entry.Key
}
0 голосов
/ 24 декабря 2018

Вы можете использовать JsonConvert из Newtonsoft.Json для десериализации json в словарь.

Dictionary<string, object> values = 
    JsonConvert.DeserializeObject<Dictionary<string, object>>(jsonstring);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...