gpt4 book ai didi

c# - 如何修改和保存 "dynamic"对象(用 dynamic 关键字声明的)中的成员/嵌入数组

转载 作者:太空宇宙 更新时间:2023-11-03 10:53:37 25 4
gpt4 key购买 nike

我有:

dynamic dObj = System.Web.Helpers.Json.Decode(contentsOfJsonFile) // returns dynamic..

哪里:

dObj.title // is a flat sting
dObj.description // is a flat sting
dObj.tags // is an array! ["videos", "pictures", "other assets"]

现在在动态变量中,如何修改嵌入数组?

当我访问 dObj.tags[0] 时,它返回字符串值。但是当我这样做时:

Json.Encode(dObj) // array unplugged, object empty

它丢失了清空嵌入数组。即使我不修改任何东西,它仍然会丢失嵌入式数组。我试图将其转换为泛型:

List<string> list = (List<string>)dObj.tags;

但是它抛出一个异常:

A first chance exception of type 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'`

问题:

如何修改动态对象的成员数组,使其在调用Json.Encode(dObj)时保持变化?

最佳答案

解码后执行此调整:

dObj.tags = new List<dynamic>( dObj.tags );

尽管有这个问题,使用 System.Web.Helpers.Json 的动态对象的序列化和反序列化比 JSON.NET 快一点。

关于c# - 如何修改和保存 "dynamic"对象(用 dynamic 关键字声明的)中的成员/嵌入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20373047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com