【发布时间】:2021-04-25 10:30:07
【问题描述】:
我有一个 json 响应,我需要在绑定到 GridView 之前对其进行编辑。我正在使用 Newtonsoft JSON 库。当从字符串中删除“值”时,数据完美地绑定到 GridView。将值添加到 json 响应时,我会收到此错误消息。
Message=Unexpected JSON token when reading DataTable. Expected StartArray, got StartObject. Path '', line 1, position 1.
如何在绑定到 GridView 之前从 jsonResponse 中删除“值”?
<asp:GridView ID="gvJson" runat="server" BackColor="White" BorderColor="#3399ff"
BorderStyle="Dotted" BorderWidth="1px" CellPadding="3" GridLines="Both" AutoGenerateColumns="true"></asp:GridView>
var jsonResponse = "{\"values\":[{\"id\":\"201\",\"name\":\"Zack\"},{\"id\":\"158\",\"name\":\"Kim\"},{\"id\":\"254\",\"name\":\"Scott\"}]}";
DataTable dataTable = JsonConvert.DeserializeObject<DataTable>(jsonResponse);
gvJson.DataSource = dataTable;
gvJson.DataBind();
我的 JSON:
{
"values": [
{
"id": "201",
"name": "Zack"
},
{
"id": "158",
"name": "Kim"
},
{
"id": "254",
"name": "Scott"
}
]
}
【问题讨论】:
-
取决于您使用的 Json 库。您能否指定并编辑您的问题以显示 未转义 Json?
-
您可以将 JSON 反序列化为类对象的集合,然后将该集合绑定到 GridView。那会更简单。您可以使用 json2csharp.com 从您的 JSON 创建类。