gpt4 book ai didi

c# - 遍历包含多个 ExpandoObject 的 ExpandoObject

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

我想知道是否可以迭代包含 Expando 对象数组的 ExpandoObject?

我目前正在解析一些具有如下文件结构的 JSON:

"event": 
[{
"name": "BEGIN!",
"count": 1
}],
"context":
{
"customer": {
"greetings":
[
{ "Value1": "Hello" },
{ "Value2": "Bye" }
],
"nicknames": []
}
}

我可以通过执行以下操作检索“事件”的 expando 对象:

GenerateDictionary(((ExpandoObject[])dict["event"])[0], dict, "event_");

这是 GenerateDictionary 方法的代码:

private void GenerateDictionary(System.Dynamic.ExpandoObject output, Dictionary<string, object> dict, string parent)
{
try
{
foreach (var v in output)
{
string key = parent + v.Key;
object o = v.Value;

if (o.GetType() == typeof(System.Dynamic.ExpandoObject))
{
GenerateDictionary((System.Dynamic.ExpandoObject)o, dict, key + "_");
}
else
{
if (!dict.ContainsKey(key))
{
dict.Add(key, o);
}
}
}
}
catch (Exception ex)
{
WritetoLog(itemname, ex);
}
}

我现在完全不知道如何检索“context_customer_greetings”中的所有值,因为当我尝试执行以下操作时,它只会检索位于 context_customer_greetings_value1 的对象。

    GenerateDictionary(((System.Dynamic.ExpandoObject[])dict["context_customer_greetings"])[0], dict, "context_customer_greetings_");

是否可以遍历 ExpandoObject?

我希望这是有道理的,在此先感谢您。

最佳答案

我现在找到了解决这个问题的方法(尽管很简单!)

我创建了一个新的动态对象,然后使用上面相同的方法对其进行迭代。

     dynamic s = dict["context_custom_greetings"];
foreach(ExpandoObject o in s)
{
GenerateDictionary((ExpandoObject)o, dict, "context_custom_greetings_");
}

关于c# - 遍历包含多个 ExpandoObject 的 ExpandoObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31288362/

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