发生的情况是我有一个请求,我有一个 Json,但我需要捕获价值,但我必须在不使用模型的情况下这样做,我已经看过示例,但它们都处理模型。
没有模型可以反序列化吗?
目前我正在这样做:
步骤1:
我从 PostMan 创建 Json
{
"CAMPO_EN_LA_TABLA": "valor que quiero capturar"
}
第2步:
在类中创建一个 Private 模型,这样就可以序列化:
private class Parametros
{
[Key]
public int Empid { get; set; }
public string Codigo { get; set; }
[Column(TypeName = "sql_variant")]
public object Valor { get; set; }
}
第 3 步:
我在字典中像这样反序列化它:
var listParametros = JsonConvert.DeserializeObject<Parametros>(valor.ToString());
第4步:
最后一件事是捕获该值并将其保存在某个参数中:
object ValorCapturado = listParametros.Valor;
Console.WriteLine("Este es el valor impreso: " + listParametros.Valor);
如您所见,我知道如何反序列化,但是在要求中他们要求我在没有模型的情况下执行此操作,但我不知道如何像那样映射它
如果需要一般反序列化,可以使用
JObject
使用 JObject.Parse 解析 JSON 对象
可以在没有对象的情况下反序列化
使用 JSON.NET 进行动态 JSON 解析
解析标题“使用 JObject.Parse() 和 JArray.Parse() 导入 JSON”,但它基本上定义了
使用时
dynamic
,反序列化没有类的 json 没有问题如果您使用 JObject,您可以访问节点
在 C# 中使用不同的值类型解析 JSON 对象
简而言之,您可以使用 JObject 或动态反序列化,而无需使用类将 json 映射到
尝试执行以下操作:
我们在不使用模型的情况下获得了一个动态对象。希望对你有帮助,问候!
文档
一种方法是使用动态类型和JsonConvert.DeserializeAnonymousType Method (String, T)
我留给你一个工作示例的dotnetfiddle