[英]How to convert a string (json with scape chars) to dynamic object?
大家好,我正在尝试转换如下所示的字符串:
"{\\"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
等值。
你可以先解析你的json
dynamic Datos = JObject.Parse(yourjson);
并通过检索值
var foo = Datos.Token
注意 - JObject 来自 newtonsoft
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.