VB.NET 2022中如何用JsonNode仅枚举JSON子键(不含值)
解决方案
要提取TemperatureRanges下的顶级键名(Cold、Hot)而不包含子结构,只需将JsonNode转换为JsonObject并访问其Keys集合即可,具体步骤如下:
修改后的VB.NET代码
Dim jsonString As String = " { ""Date"": ""2019-08-01T00:00:00"", ""Temperature"": 25, ""Summary"": ""Hot"", ""DatesAvailable"": [ ""2019-08-01T00:00:00"", ""2019-08-02T00:00:00"" ], ""TemperatureRanges"": { ""Cold"": { ""High"": 20, ""Low"": -10 }, ""Hot"": { ""High"": 60, ""Low"": 20 } } } " Dim forecastNode As JsonNode = JsonNode.Parse(jsonString) ' 将JsonNode转换为JsonObject,以便访问键集合 Dim temperatureObj As JsonObject = forecastNode("TemperatureRanges").AsObject() ' 获取所有顶级键并拼接为逗号分隔的字符串 Dim result As String = String.Join(", ", temperatureObj.Keys) Console.WriteLine(result) ' 如果需要将键存入数组,可使用: ' Dim keyArray As String() = temperatureObj.Keys.ToArray()
代码说明
AsObject()方法将通用的JsonNode转换为具体的JsonObject类型,这样就能直接访问其Keys属性,获取该对象的所有顶级键名,不会递归解析子结构。String.Join(", ", temperatureObj.Keys)将键集合拼接成你需要的Cold, Hot格式输出。- 若需将键存入数组,调用
ToArray()方法即可,后续可按需使用该数组。
内容的提问来源于stack exchange,提问作者rerat
相关产品推荐
相关产品推荐

