首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从c#中的动态json字符串中获取密钥

从c#中的动态json字符串中获取密钥
EN

Stack Overflow用户
提问于 2022-09-22 10:45:27
回答 2查看 87关注 0票数 0

我有一个变量json字符串,如下所示

代码语言:javascript
复制
[{"UserId":1,"PlatformName":"A","Value_Number1":11,"Value_Number2":12}, 
 {"UserId":2,"PlatformName":"B","Value_Number1":13,"Value_Number2":14}]

原始输出串

代码语言:javascript
复制
"[{\"UserId\":1,\"PlatformName\":\"A\",\"Value_Number1\":11,\"Value_Number2\":12}, 
  {\"UserId\":2,\"PlatformName\":\"B\",\"Value_Number1\":13,\"Value_Number2\":14}]"

我需要从这个json字符串中提取密钥名。

代码语言:javascript
复制
i.e userid,platfromName,Value_Number1,Value_number2

这需要是动态的,因为在某些情况下会有更多的键(如Value_Number3,ValueNumber4 ),但是格式将是相似的。

我看过一些例子,但与我的场景没有真正的关联。

当我不知道钥匙的数量和名字时,怎么能做到这一点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-22 11:26:47

您可以使用Newtonsoft.Json在一行中完成

代码语言:javascript
复制
IEnumerable names = JArray.Parse(jsonString)
             .SelectMany(x => ((JObject) x).Properties().Select(x =>x.Name ));
票数 0
EN

Stack Overflow用户

发布于 2022-09-28 20:50:36

System.Text.Json

代码语言:javascript
复制
var json = "[{\"UserId\":1,\"PlatformName\":\"A\",\"Value_Number1\":11,\"Value_Number2\":12},{\"UserId\":2,\"PlatformName\":\"B\",\"Value_Number1\":13,\"Value_Number2\":14}]";

using var document = JsonDocument.Parse(json);
HashSet<string> properties = document.RootElement
    .EnumerateArray()
    .SelectMany(item => item.EnumerateObject(), (_,prop) => prop.Name)
    .ToHashSet();

结果:

代码语言:javascript
复制
UserId
PlatformName
Value_Number1
Value_Number2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73813291

复制
相关文章

相似问题

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