大家好,我正在尝试转换一个看起来像这样的字符串:
"{\"Estado\":true,\"Token\":\"3D16C8D8-058C-4FA7-AEA2-1A764A083B72\",\"Nombre\":\"Agente COV\"}"
如果我在代码运行时进行快速检查,它看起来像这样:
应用以下代码行之后:
var Datos = JsonConvert.DeserializeObject<dynamic>(Resultado);
它返回带有两个花括号的对象
{{"Estado": true, "Token": "3D16C8D8-058C-4FA7-AEA2-1A764A083B72", "Nombre": "Agente COV"}}
将字符串转换为动态对象后,如何避免使用这两个花括号?
最后,我需要像这样使用它:
var foo = Datos.Token.Value;
非常感谢您的帮助。
您所看到的效果(字符串和花括号中的转义引号)正是调试器选择显示这些值的方式。
"{\"Estado\":true,\"Token\":\"3D16C8D8-058C-4FA7-AEA2-1A764A083B72\",\"Nombre\":\"Agente COV\"}"
实际上是一个包含以下内容的字符串
{"Estado":true,"Token":"3D16C8D8-058C-4FA7-AEA2-1A764A083B72","Nombre":"Agente COV"}
和
{{"Estado": true, "Token": "3D16C8D8-058C-4FA7-AEA2-1A764A083B72", "Nombre": "Agente COV"}}
调试器如何选择显示具有3个具有值的属性的动态对象
解决这个问题的最简单方法是为JSON创建一个类
public class MyObject{
public bool Estado { get; set; }
public Guid Token { get; set; }
public string Nombre { get; set; }
}
然后,您可以使用Json.Net反序列化它。
var json = "{\"Estado\":true,\"Token\":\"3D16C8D8-058C-4FA7-AEA2-1A764A083B72\",\"Nombre\":\"Agente COV\"}";
var myObject = JsonConvert.DeserializeObject<MyObject>(json);
然后访问诸如myObject.Token
etc之类的值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句