c# - 如何通过删除 C# 中的键来制作平面对象?
问题描述
我真的不确定这是否可以实现,如何删除对象中的一些嵌套键并使对象非常平坦。我有一个动态对象如下,
EventData": { "ChangeSet": { "Change": { "changes": [ ] } } }
我想将以上内容更改为
事件数据”:{ [] }
这可以在 C# 中实现吗?
解决方案
使用 NewtonSoft.JSon 包。下面的代码可以解决问题。我把它做成了一个字符串数组,因为我不知道你需要什么,但你可以根据自己的喜好进行更改。
const string complex = "{\"EventData\": { \"ChangeSet\": { \"Change\": { \"changes\" : [ ]}}}}";
调用方法:
string simple = returnSimpleObject(complex);
public class SerializeData
{
public string[] EventData { get; set; }
}
private static string returnSimpleObject(string Json)
{
JObject jobject = JObject.Parse(Json);
JToken tEventData = jobject.SelectToken("EventData");
SerializeData myEvent = tEventData.ToObject<SerializeData>();
JToken tchanges = jobject.SelectToken("EventData.ChangeSet.Change.changes");
myEvent.EventData = tchanges.ToObject<string[]>();
JsonSerializer serializer = new JsonSerializer();
StringWriter strWrite = new StringWriter();
JsonWriter myWriter = new JsonTextWriter(strWrite);
serializer.Serialize(myWriter, myEvent);
return strWrite.ToString();
}
推荐阅读
- netbeans - Windows 7 BSOD 后无法从 netbeans 启动 weblogic
- jprofiler - jprofiler。如何在linux上导出结果
- json - SoapUI REST + JSON 模拟服务:如何在响应中从请求中返回数据?
- angular - SVG 不会在 pdf 文件中呈现(使用 pdfmake 和 html2canvas)
- string - SAS - 在字符串上放置空格
- c# - MVC 处理任何请求的 401 响应
- c# - 从引用为 .dll 文件的库中加载图像
- javascript - 我只使用 JavaScript 创建了一个包含一些记录的表,我想将我的数组与对象设置为本地存储
- kubernetes - istio 的细粒度授权解决方案
- python - 如何在没有聚合函数的情况下使用 pandas 滚动函数?