这个 JSON 负载中的一个节点让我头疼。
它的格式像一个字符串(在引号中),但它不能进入我的对象字符串。
这是整个负载,就像我收到的一样:
{
"Event_Id":"da89afe72b41cb685f03261d8cb18d9e",
"Event_Name":"Employee Created",
"Event_DateTime":1655144130,
"ClientCode":"XXXXX",
"Resource_Field":"Employee",
"Resource_Identifier":null,
"Object":null,
"Object_Identifier":"9995",
"Data":"{"Employee_ID":"9995","Is_Rehire":"N","Was_New_Hire":"Y"}",
"Endpoint":"Employee",
"EndpointUrl":"api/v1/employee/9995"
}
问题在于
"Data"
属性,为了清晰起见将其分离。这是它所加载到的对象:
public class OutsideEvent
{
public string Event_Id { get; set; }
public string Event_Name { get; set; }
public int Event_DateTime { get; set; }
public string ClientCode { get; set; }
public string Resource_Field { get; set; }
public object Resource_Identifier { get; set; }
public object Object { get; set; }
public string? Object_Identifier { get; set; }
**public string? Data { get; set; }**
public string Endpoint { get; set; }
public string EndpointUrl { get; set; }
}
使用Postman,我可以去掉“Data”值周围的引号,将其类型更改为对象,并将其反序列化为以下内容:
public class eventData
{
public string Employee_ID { get; set; }
public string Is_Rehire { get; set; }
public string Was_New_Hire { get; set; }
}
但是我无法让发件人去掉引号,所以我必须想办法处理它?
我还试过使用[JsonIgnore]
装饰Data
属性,因为我不关心这个值,但它并没有改变任何东西。
非常感谢任何帮助。
谢谢!
"Data": {"Employee_ID":"9995", ... :"Y"}
,由于大括号现在不再被包含在字符串中,它们代表一个 JSON 对象的开始和结束。这可能是处理它的最简单方法。 - Lasse V. Karlsen