在 C# 中,如何反序列化我从 REST 服务获得的这个结果

本文关键字:服务 结果 REST 反序列化 | 更新日期: 2023-09-27 18:33:53

我从休息服务中返回此字符串结果:

Test: [[]] MessageDetail: [['{"Field1": "Value1", "Field2": "Value2", "BM Fields": "{''BM Field 1'': ''BM Value 1'', ''Field2'': ''''}", "Field 2": "Value 4"}']] 

不幸的是,只有"MessageDetail"标签内的数据是有效的json(我将发送到json反序列化程序),所以我试图找出删除消息中不必要的部分的最佳方法。 所以我想解析出消息中的字符串,我可以

{"Field1": "Value1", "Field2": "Value2", "BM Fields": "{''BM Field 1'': ''BM Value 1'', ''Field2'': ''''}", "Field 2": "Value 4"}

在第一个撇号之前去除字符串的第一部分以及最后一个撇号之后字符串的最后一部分的最佳方法是什么,这样我就可以得到上面第二部分中列出的内容?

在 C# 中,如何反序列化我从 REST 服务获得的这个结果

你可以通过使用

Substring和IndexOf来获取它,考虑到你想使用"{"作为参考

string output = input.Substring(input.IndexOf("{")+1,input.Length-2)

此代码仅打算省略"{"和"}"

在此之后,只需在输出上使用您的 JSON 解析器

第 1 步:使用字符串删除函数

string output = input.Remove(startIndexOfApostrophe, count);

第 2 步: 在 Visual Studio 中,将特殊粘贴为 Json 以生成类

第 3 步: 反序列化 json

我不能写确切的代码,但可以给你正确的算法,因为我是从手机上打字的:

Var array = result.split('[[');
Var json = array.last();
json = json.replace(']]', '');

发送此"json"变量进行反序列化。