将字符串表示形式转换为Json

时间:2016-08-05 13:47:58

标签: c# json

我在这个表示中有一个字符串

{
    transaction_id = 120,
    transaction_shortname = 120. AUTO
}

这不是一个Json表示我想知道是否有一种简单的方法将它转换为Json表示如下:

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

之后,我可以执行以下操作来获取Transaction对象:

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

3 个答案:

答案 0 :(得分:1)

不,这不能自动转换为JSON,您需要手动解析您的格式。我不知道任何支持这种语法的语言。

但是,如果您完全确定在值中不会出现一些复杂的情况,例如带引号的字符串和“=”和“\”“,那么您可以只应用正则表达式:

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

答案 1 :(得分:1)

您提供的摘录符合HJSON标准,因此可以被任何HJSON库解析。 https://hjson.org/

答案 2 :(得分:0)

感谢您的回复,
让我们说我有一个对象 对象j; 它的基础是

{
    transaction_id = 120,
    transaction_shortname = 120. AUTO 
}

我最后做了以下事情:

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