【发布时间】:2021-04-28 14:51:40
【问题描述】:
我的 HTML 页面中有一个表格,需要发送给主机。我使用ExecuteScriptAsync 方法(WebView2)来做到这一点。该方法返回一个 Newtonsoft.Json.Linq.JObject 作为结果。它看起来像这样 {{ "1": {}, "2": {}, "3": {}, "4": {}, "5": {}, "6": {}, "7": {} }} 。行数是正确的,但如您所见,您没有对该表的完全访问权限。
反序列化 JObject 以获取表的正确方法是什么
JsonConvert.DeserializeObject<object>(await this.WebView2Form.ExecuteScriptAsync("document.getElementById('" + TABLEID + "')." + rows));
也就是说,我需要执行下面的 javascript 并且能够在 C# 中读取结果
document.getElementById("myTable").rows
【问题讨论】:
-
使用 Newtonsoft 在 C# 中反序列化 HTML 表的正确方法是什么? -- Json.NET 用于解析 JSON 而不是 HTML,没有正确的方法来使用 Newtonsoft反序列化HTML table。或者,也许您在 HTML 中嵌入了一个 JSON 数组,您想用 Newtonsoft 进行解析?如果是这样,请edit您的问题分享minimal reproducible example,显示您尝试解析的JSON字符串——即
await this.WebView2Form.ExecuteScriptAsync("document.getElementById('" + TABLEID + "')." + rows返回的字符串