В моем приложении у меня есть List<Users>
десериализации JSON с вложенными массивами для создания строки из значений
[{
"Id": "1",
"Name": "last, first",
"Skills": [{"SN":"20","SL":"12"},{"SN":"197","SL":"09"}]
},
{
"Id": "2",
"Name": "Black, Jack",
"Skills": [{"SN":"40","SL":"07"},{"SN":"199","SL":"05"}]
},
{
"Id": "3",
"Name": "Rooney, Wayne",
"Skills": [{"SN":"40","SL":"11"},{"SN":"201","SL":"07"}]
}]
Мне нужно преобразовать эти данные в одну строку в формате, как это:
"1/последняя, первая/20-12,197-09; 2/Черный Джек/40-07,199-05; 3/Rooney, Wayne/40-11,201-07"
Я попытался сериализовать этот OBJE кт получить JSON строку:
public IHttpActionResult ImportUsers([FromBody]IEnumerable<Users> newUsers)
{
string agents = JsonConvert.SerializeObject(newUsers);
return Ok(agents);
}
и получить результат:
"[{\" Id \ ": \" 1 \ "\ "Имя \": \" последний, first \ ", \" Skills \ ": [{\" SN \ ": \" 20 \ ", \" SL \ ": \" 12 \ "}, {\" SN \ ": \" 197 \ " , \ "SL \": \ "09 \"}]}, {\ "Id \": \ "2 \", \ "Name \": \ "Black, Jack \", \ "Skills \": [{\ "С.Н. \": \ "40 \", \ "SL \": \ "07 \"}, {\ "С.Н. \": \ "199 \", \ "SL \": \ "05 \ "}]}, {\" Id \ ": \" 3 \ ", \" Name \ ": \" Rooney, Wayne \ ", \" Skills \ ": [{\" SN \ ": \" 40 \ ", \" SL \ ": \" 11 \ "}, {\" SN \ ": \" 201 \ ", \" SL \ ": \" 07 \ "}]}]"
Чем я пытался десериализацией этой строки, чтобы получить значения для каждого из переменных
var dict = JsonConvert.DeserializeObject<dynamic>(agents);
List<string> results = new List<string>();
foreach (var d in dict)
{
var skills = d["Skills"];
string skill = string.Join(",", skills);
string list = d["Id"] + "/" + d["Name"] + "/" + skill;
results.Add(list);
}
string result = string.Join(";", results);
и получить эту строку:
"1/последние, первый/{\ г \ п \" SN \ ": \" 20 \ ", \ r \ n \" SL \ ": \" 12 \ "\ r \ n}, {\ r \ n \" SN \ ": \" 197 \ ", \ r \ n \ "SL \": \ "09 \" \ r \ n}; 2/Black, Jack/{\ r \ n \ "SN \": \ "40 \", \ r \ n \ "SL \ ": \" 07 \ "\ r \ n}, {\ r \ n \" SN \ ": \" 199 \ ", \ r \ n \" SL \ ": \" 05 \ "\ r \ n }; 3/Руни, Уэйн/{\ r \ n \ "SN \": \ "40 \", \ r \ n \ "SL \": \ "11 \" \ r \ n}, {\ r \ n \ "SN \": \ "201 \", \ r \ n \ "SL \": \ "07 \" \ r \ n} "
Так что это больше похоже на то, что мне нужно, но у меня все еще есть проблема со значениями в списке Skills. Как я могу получать значения от него, как это было с столбцами Id и Name? Может быть, мне нужно снова десериализовать эту часть или использовать некоторые регулярные выражения для достижения нужной мне строки?
Просто удивительный! Оба они отлично работают. Спасибо) –