如何反序列化 Json 并绑定到变量/属性 c#
Posted
技术标签:
【中文标题】如何反序列化 Json 并绑定到变量/属性 c#【英文标题】:How to desearilize Json and bind to variables/properties c# 【发布时间】:2021-06-16 13:31:04 【问题描述】:var AdditionalData = flexEventTriggerLogsList.Select(x => x.AdditionalData).ToString();
string json = Convert.ToString(JsonConvert.DeserializeObject(AdditionalData));
var objTriggerLog = new FlexEventTriggerLog();
objTriggerLog.lookupEntity_RecordId = ????
objTriggerLog.DocumentRecordIds = ????
附加数据将以字符串形式返回我的 Json 对象。我必须使用该对象来获取我的实体和文档记录 ID。
将返回的Json对象:
"lookupEntity_RecordId": "00000000-0000-0000-0000-000000000000",
"DocumentRecordIds":["00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000000"]
【问题讨论】:
问题已经有你要的代码 -JsonConvert.DeserializeObject(AdditionalData)
...你能澄清一下你到底需要什么帮助吗?
我想将反序列化的对象绑定到我的 c# 类对象属性。即lookupEntity_RecordId 和 DocumentRecordIds
【参考方案1】:
您可以使用JsonConvert.DeserializeObject(jsonstring)
你为你的 json 创建一个模型
public class AdditionalDataModel
public string lookupEntity_RecordId get; set;
public List<string> DocumentRecordIds get; set;
然后反序列化模型中的 json
var AdditionalData = flexEventTriggerLogsList.Select(x => x.AdditionalData).ToString();
var additionalDataModel = JsonConvert.DeserializeObject<AdditionalDataModel>(AdditionalData);
var objTriggerLog = new FlexEventTriggerLog();`
objTriggerLog.lookupEntity_RecordId = additionalDataModel.lookupEntity_RecordId;
objTriggerLog.DocumentRecordIds = additionalDataModel.DocumentRecordIds;
【讨论】:
以上是关于如何反序列化 Json 并绑定到变量/属性 c#的主要内容,如果未能解决你的问题,请参考以下文章
如何反序列化 XML 到 json 和 json 到 c# 类?
C# JSON 反序列化:如何从 JSON 对象数组中获取值 [重复]