2016-08-05 102 views
0

我有一個字符串在此表示鑄造字符串表示爲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 .Replace(」=」, 「\」:\ 「」) \t \t \t。替換(「,」+ Environment.NewLine,「\」,「+ Environment.NewLine) \t \t \t .Replace(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

不,這是不正確的。牛頓軟件不理解這個例子;雖然它處理未引用的屬性名稱和評論,它不知道該如何處理120。 AUTO「並給出解析錯誤。 – user5090812

+0

當我使JsonConvert.SerializeObject(j)我得到一個正確的Json字符串 –