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

正则表达式C#:清除错误的Json字符串,c#,json,nsregularexpression,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_Templ

我从服务器上得到了这样一个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={“行程安排”:[
并删除最后3个字符
]
在我的对象中反序列化它


如何使用正则表达式生成它?还是有更好的变体?

这不是JSON,而是Javascript(对象声明是JSON)

正则表达式很慢,我建议您使用子字符串

var start=inputString.IndexOf("[");
var end=("]");
var json=inputString.Substring(start, end-start);
可能存在一些逐个错误,请测试并更正。 它会更快,但比硬编码启动更弱

有更好的变体吗

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

然后,您可以使用从json访问任何键/值对

或者您可以使用
var result=JObject.ToObject()将
JObject
映射到自定义类型

输出:


奇怪。这不是一个真正的JSON响应。另外,反斜杠实际上是响应的一部分,还是您只是复制了字符串文字?它不是json响应。:)使用邮递员或小提琴手。如果您使用的是浏览器控制台,请尝试转到“网络”选项卡,查看调用方法时它给您的响应。是否在Visual Studio调试器中查看此字符串?这将有助于添加转义,以便它显示可以复制到源代码中的字符串文字。请粘贴原始json,而不是转义版本。调用XY问题,如果没有猜测,将无法回答。
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();
    }
}