如何将foreach循环中获取的JToken转换为指定格式的JArray
实现方案
实现逻辑
- 你拿到的JToken实际为JObject类型,先做类型校验避免运行时报错
- 遍历JObject的所有属性,将属性名首字母大写后与属性值拼接为指定格式字符串
- 每个拼接完成的字符串单独封装为JArray实例即可得到目标输出
最优代码实现
using Newtonsoft.Json.Linq; // 你在foreach中获取到的JToken实例 JToken value = JToken.Parse(@"{""test"":123, ""test2"":""456""}"); if (value.Type == JTokenType.Object) { JObject jsonObj = (JObject)value; foreach (JProperty property in jsonObj.Properties()) { // 处理属性名首字母大写 string formattedKey = char.ToUpper(property.Name[0]) + property.Name.Substring(1); string content = $"{formattedKey}:{property.Value}"; JArray targetArray = new JArray(content); // 输出或使用生成的JArray Console.WriteLine(targetArray.ToString(Newtonsoft.Json.Formatting.None)); } }
输出结果
运行上述代码将直接输出你要求的格式:
["Test:123"] ["Test2:456"]
方案优势
- 仅单次遍历JObject属性,时间复杂度为O(n),无额外序列化/反序列化开销,性能最优
- 提前做类型判断,兼容非对象类型的JToken输入,不会抛出异常
- 代码简洁易维护,符合Newtonsoft.Json的最佳实践
内容的提问来源于stack exchange,提问作者ps11
相关产品推荐
相关产品推荐

