首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当第一个字段的名称为动态时,从JSON中获取值

当第一个字段的名称为动态时,从JSON中获取值
EN

Stack Overflow用户
提问于 2019-06-25 08:54:16
回答 2查看 42关注 0票数 1

在这里以List<string>的形式检索值的最佳方式是什么?我不能把它转换成具体的类,因为根对象的名称总是会改变的。

下面是json:

{"356bfd81-0fd7-45ef-a768-d0d1b6f63c1b":{"TableEntry":[{"Id":"169b47a6-1f94-4103-959b-785096960927"},{"Id":"e07885eb-0db5-4134-8890-681a8fa63a8e"},{"Id":"12fe4ad1-cf22-40ea-840f-356bfd0b6ce2"},{"Id":"1a4ec0d6-f2b6-43e2-adc6-7350ea0dc9c7"},{"Id":"16cbecd7-80a5-43f8-b83a-54816b2bff87"},{"Id":"c1df10c6-0628-4844-9024-f43f9a3605c7"},{"Id":"bdced1ae-203c-4c9e-bc8e-d4d74b9008f3"},{"Id":"50e9e85e-cd3c-4a49-820d-607960e81e87"},{"Id":"1869b251-ffce-474e-bedb-3f37a07e36e2"},{"Id":"8e8c432b-0d7a-4397-b96b-c77a93692941"}]}}

我不知道如何绕过第一个根对象来获取我想要的Ids列表。

到目前为止,我已经尝试了JObject.Parse(),但这只允许我使用.First属性。但这会使我的变量看起来像myObject.First.First.First。这并不理想。

我也尝试过将其转换为dynamic。但这也不好,我不能去myObject.TableEntry -它看不到它。我似乎甚至无法通过这里的第一点,因为myObject[0]会抛出一个异常。

有什么建议吗?我怎样才能从这样的json中获得I的List<string>?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-25 09:07:30

在您的模型中使用Dictionary<string,YourModel>

代码语言:javascript
复制
public class MyModel {
    public TableEntry[] TableEntry { get; set; }
}

public class TableEntry {
    public string Id { get; set; }
}

一旦被解析

代码语言:javascript
复制
var data = JsonConvert.DeserializeObject<Dictionary<string,MyModel>>(json);

您可以轻松地获取数据

代码语言:javascript
复制
List<string> ids = data.First().Value.TableEntry.Select(entry => entry.Id).ToList();

代码语言:javascript
复制
List<string> ids = data
    .SelectMany(kvp => kvp.Value.TableEntry.Select(entry => entry.Id))
    .ToList();

如果有多个动态关键点

票数 3
EN

Stack Overflow用户

发布于 2019-06-25 09:46:41

如果这些是唯一具有键作为Id的对象,另一种方法是使用Descendants()。

代码语言:javascript
复制
JToken Id = null;
var jsonObject = JObject.Parse(json);
List<string> IDs = jsonObject.Descendants().Where(x => d is JObject && ((JObject)d).TryGetValue("Id", out Id)).Select(_=>Id.Value<string>()).ToList();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56745529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档