2016-08-05 3 views
0

У меня есть строка в этом представленииCast строковое представление в Json

{ 
    transaction_id = 120, 
    transaction_shortname = 120. AUTO 
} 

Это не представление Json я хочу знать, если есть простой способ превратить его в представлении Json так:

{ 
     "transaction_id": "120", 
     "transaction_shortname": "120. AUTO" 
} 

После этого я могу сделать следующее, чтобы получить объект транзакции:

 JObject j = JObject.Parse("{\"transaction_id\": \"120\",\"transaction_shortname\": \"120. AUTO\"}"); 
     transaction ttttt = JsonConvert.DeserializeObject<transaction>(j.ToString()); 
+0

Вы можете использовать что-то вроде 'строки OUTP = inp.Replace (@ "transaction_", "\" transaction_ ") \t \t \t .Привернуть ("=», "\": \ "") \t \t \t .Replace («,» + Environment.NewLine, «\», «+ Environment.NewLine») \t \t \t. Место (Environment.NewLine + "}", "\" "+ Environment.NewLine +"} "); ' –

+0

Я не могу этого сделать, и я не могу сделать цикл по свойствам и построить json для проблем с производительностью. –

ответ

1

нет, это не может быть совместно автоматически перевернуты в JSON, вам необходимо проанализировать формат, который вы используете вручную. И я не знаю языка, который поддерживает этот синтаксис.

Однако, если вы абсолютно уверены, что не будут некоторые сложные случаи, как строки в кавычках и «=» и «\»»в значениях, вы можете просто применить регулярное выражение:

Regex.Replace(
    source.Replace("\r\n", "\n"), 
    @"(\n\s*)([^\n]*?)\s*=\s*([^\n]*?)([,\n])", 
    "$1\"$2\": \"$3\"$4") 
0

Спасибо за ваш ответ,
Допустим, у меня есть объект объекта J; это база

{ 
    transaction_id = 120, 
    transaction_shortname = 120. AUTO 
} 

Я закончил, выполнив следующие действия:

transaction t = JsonConvert.DeserializeObject<transaction>(JsonConvert.SerializeObject(j)); 
+2

Нет, это совсем не правильно. Newtonsoft не понимает этот пример, хотя он обрабатывает имена некотируемых свойств и комментарии, он не знает, что делать с «120». AUTO' и дает на нем ошибку синтаксического анализа. – user5090812

+0

Когда я делаю JsonConvert.SerializeObject (j), я получаю правильную строку Json –

1

Выдержка, которую вы дали, квалифицируется как HJSON, и поэтому может быть проанализирована любой библиотекой HJSON. https://hjson.org/

+0

. HJSON использует: вместо = –

Смежные вопросы