我有一个变量json字符串,如下所示
[{"UserId":1,"PlatformName":"A","Value_Number1":11,"Value_Number2":12},
{"UserId":2,"PlatformName":"B","Value_Number1":13,"Value_Number2":14}]原始输出串
"[{\"UserId\":1,\"PlatformName\":\"A\",\"Value_Number1\":11,\"Value_Number2\":12},
{\"UserId\":2,\"PlatformName\":\"B\",\"Value_Number1\":13,\"Value_Number2\":14}]"我需要从这个json字符串中提取密钥名。
i.e userid,platfromName,Value_Number1,Value_number2这需要是动态的,因为在某些情况下会有更多的键(如Value_Number3,ValueNumber4 ),但是格式将是相似的。
我看过一些例子,但与我的场景没有真正的关联。
当我不知道钥匙的数量和名字时,怎么能做到这一点。
发布于 2022-09-22 11:26:47
您可以使用Newtonsoft.Json在一行中完成
IEnumerable names = JArray.Parse(jsonString)
.SelectMany(x => ((JObject) x).Properties().Select(x =>x.Name ));发布于 2022-09-28 20:50:36
System.Text.Json
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();结果:
UserId
PlatformName
Value_Number1
Value_Number2https://stackoverflow.com/questions/73813291
复制相似问题