C#如何将接收的JSON字符串格式化后显示在GridView中
方案1:使用.NET内置System.Text.Json实现JSON美化
适用.NET Core 3.0+ / .NET 5+ 版本,无需额外安装第三方依赖:
- 引用命名空间:
using System.Text.Json; - 核心实现代码:
// rawJson为你接收到的无格式原始JSON字符串 var jsonOptions = new JsonSerializerOptions { WriteIndented = true }; JsonElement jsonElement = JsonSerializer.Deserialize<JsonElement>(rawJson); // 输出的prettyJson就是你需要的带缩进换行的美化格式JSON string prettyJson = JsonSerializer.Serialize(jsonElement, jsonOptions);
方案2:使用Newtonsoft.Json(Json.NET)实现
适合.NET Framework等老版本项目,需要先安装NuGet包Newtonsoft.Json:
- 引用命名空间:
using Newtonsoft.Json; - 核心实现代码:
dynamic parsedJson = JsonConvert.DeserializeObject(rawJson); string prettyJson = JsonConvert.SerializeObject(parsedJson, Formatting.Indented);
拓展:将JSON数据绑定到GridView
如果要实现后续GridView展示的需求,可以先定义对应结构的实体类,将JSON反序列化为实体集合后直接绑定即可:
- 定义数据实体类:
public class SentenceItem { public string sentence { get; set; } public string sentenceNbr { get; set; } public List<string> tokens { get; set; } public List<string> pos { get; set; } public List<string> ner { get; set; } public List<string> lemmas { get; set; } // 数组字段如需直接在GridView展示可新增拼接属性 public string TokensText => string.Join(", ", tokens); }
- 反序列化并绑定GridView:
// System.Text.Json版本 List<SentenceItem> dataList = JsonSerializer.Deserialize<List<SentenceItem>>(rawJson); // Newtonsoft.Json版本 // List<SentenceItem> dataList = JsonConvert.DeserializeObject<List<SentenceItem>>(rawJson); yourGridView.DataSource = dataList; yourGridView.DataBind();
内容的提问来源于stack exchange,提问作者Vinson Sack
相关产品推荐
相关产品推荐

