Скажем, у меня есть string
, представляющий массив объектов в JSON форме:Deserialize JSON массив в массив строк
string s = "[{\"name\":\"Person1\"},{\"name\":\"Person2\"}]";
То, что я хочу, это массив строк, каждая строка является строковое представление из JSON объект - NOT сам объект. Это должно выглядеть примерно так:
string[] s = new string[]
{
"{\"name\":\"Person1\"}",
"{\"name\":\"Person2\"}"
};
1) Почти каждый поиск попытке подъезжает миллионы результатов о том, как просто десериализации JSON строку, используя (например) Json.NET. Это не что я хочу делать.
2) Я попытался построить класс, представляющий объекты, чтобы временно прокрутить десериализацию/сериализацию, сопоставляя каждую строку в массиве, но схема для объектов является переменной (поэтому поэтому мне нужно только строковое представление) ,
3) Я попытался выполнить несколько регулярных выражений, но моя строка JSON может содержать поля, содержащие строки JSON, как их значение (icky, но из-под моего контроля), и поэтому вложенные символы и т. Д. до того, как я решил попросить о помощи здесь.
Несомненно, это должно быть просто? У кого-нибудь есть указатели?
Почему вы не хотите использовать Json.NET? Вы можете десериализовать массив JSON, а затем пропустить цикл и сериализовать каждый объект в массиве на строку и поместить их в список или что у вас есть. – Sean
Я думал, что десериализация «объекта» (а не класса, определяющего все ожидаемые поля), а затем сериализации, приведет к потере полей. Я рассмотрел это на мгновение в самом начале, а затем сразу отклонил эту идею как «явно не собирающуюся работать».Угадайте, что яйцо на моем лице :) –