2016-08-05 104 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字符串 –