Записать значения объекта json без {":, используя c # - PullRequest
0 голосов
/ 02 февраля 2019
{

"FirstName" :"Kaustubh",
"LastName" :" Sawant ",
"StartTime" :"01:00:00"

}

Я хочу напечатать

First Name: Kaustubh
Last Name: Sawant
Start time : 01:00:00

Это демонстрационный код, написанный для того, чтобы реальный объект получил больше значений.Фактический код:

String JsonValue=JsonConvert.SerializsObject(object);

также использовал Formatting.Indented и пытался

Regex.Replace(JsonValue,@"\{},"","").Trim();

, а затем записывал в файл, используя StreamWriter.

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Учитывая, что json - это строковая переменная, содержащая ваш ввод:

var json = @"
{
""FirstName"" :""Kaustubh"",
""LastName"" :"" Sawant "",
""StartTime"" :""01:00:00""
}";

Простое решение, основанное на стандартной библиотеке:

Console.WriteLine(json.Replace("{", "").Replace("}", "").Replace("\"","").Replace(",", "").Trim());

Решение, использующее инфраструктуру Newtonsoft.Json для десериализации строки json:

var dict = JsonConvert.DeserializeObject<Dictionary<string, string>>(json);

foreach (var entry in dict)
{
    Console.WriteLine($"{entry.Key}: {entry.Value}");
}
0 голосов
/ 02 февраля 2019

Я думаю, что вы атакуете это не с того угла, если это действительно json , лучше всего десериализовать его, используя что-то вроде json.net , а затем построить строкуиз свойств.

Однако, поскольку вы настаиваете на том, чтобы сделать это с помощью замены, вы можете использовать regex

var result = Regex.Replace(input, @"[,{}\"")]", "").Trim();
Console.WriteLine(result);

Выход

FirstName :Kaustubh
LastName : Sawant 
StartTime :01:00:00

Полная демонстрация здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...