正则表达式C#:清除错误的Json字符串

时间:2018-10-25 07:18:56

标签: c# json nsregularexpression

我从服务器以这种JSON的形式得到答案:

var zohozoho_atliview92 = {\"Itinerary\":[
 {\"Client_Email\":\"garymc\",
 \"Client_Name\":\"Gary\",
 \"NT_Number\":\"NT-1237\",\"Number_of_Nights\":7,
 \"ID\":\"24297940\",
 \"Itinerary_Name\":\"Icelandnights\",
 \"Tour_Template_Name\":\"Iceland FireDrive\",
 \"Departure_Date\":\"2018-07-04\"}
]};

我需要删除以下内容:var zohozoho_atliview92 = {\"Itinerary\":[并删除最后3个字符]};以在我的对象中反序列化。

我如何使用正则表达式进行制作?还是有更好的变体?

2 个答案:

答案 0 :(得分:3)

  

有更好的变体吗?

是的,您可以将JSON转义的字符串解析为JObject

然后您可以使用Querying JSON with LINQ

从json访问任何键/值对

或者您可以通过使用JObject

var result = jObject.ToObject<T>();映射到自定义类型
class Program
{
    static void Main(string[] args)
    {
        var zohozoho_atliview92 = "{\"Itinerary\":[ {\"Client_Email\":\"garymc\", \"Client_Name\":\"Gary\", \"NT_Number\":\"NT-1237\",\"Number_of_Nights\":7, \"ID\":\"24297940\", \"Itinerary_Name\":\"Icelandnights\", \"Tour_Template_Name\":\"Iceland FireDrive\", \"Departure_Date\":\"2018-07-04\"}]}";

        JObject jObject = JObject.Parse(zohozoho_atliview92);

        Console.WriteLine(jObject);

        Console.ReadLine();
    }
}

输出:

enter image description here

答案 1 :(得分:-1)

这不是JSON,而是Javascript(其中对象声明为JSON)。

正则表达式很慢,我建议您使用Substring

Symfony (3.4)

可能存在一些错误,请测试并更正。 硬编码启动会更快甚至更弱。