正则表达式C#:清除错误的Json字符串
我从服务器上得到了这样一个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
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();
}
}