gpt4 book ai didi

c# - 在 ASP.net C# 中从 JSON 中检索数组

转载 作者:太空宇宙 更新时间:2023-11-03 19:08:20 29 4
gpt4 key购买 nike

我正在从返回复杂 JSON 字符串的网络 API 收集数据。这包含许多不同类型的值、一些数组和一些相当深的嵌套。

目前我正在将字符串转换为动态对象,如下所示:

dynamic dynamicObject = JsonConvert.DeserializeObject(jsonString);

然后我根据需要从该对象中检索值并对它们进行类型转换,但是当我尝试检索数组时此方法给出空引用异常:

int myValue         = (int)dynamicObject.foo.value; // Works!
int[] myArrayOfInts = (int[])dynamicObject.bar.values; // Null

我不确定如何继续,因为我对 C# 和 ASP.net 还很陌生。到目前为止,我遇到的大多数解决方案都需要创建小型的、类型严格的类来反射(reflect)整个 JSON 结构。在我的例子中,最好只使用动态对象,部分是为了简单,部分是因为实际上只使用了某些值。

最佳答案

当我尝试运行您的代码时,我收到了 RuntimeBinderException: Cannot convert type 'Newtonsoft.Json.Linq.JArray' to 'int[]'。您可以使用 ToObject 进行此转换.

dynamic dynamicObject = JsonConvert.DeserializeObject("{\"values\": [1, 3, 4]}");
int[] myArrayOfInts = dynamicObject.values.ToObject<int[]>();

转换为 int 有效,因为定义了转换转换 for many types包括 int,但不包括 int[]

关于c# - 在 ASP.net C# 中从 JSON 中检索数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23767419/

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