我需要一种在 ASP.NET 网络表单中的控件中显示 JSON 和 XML 的方法
Posted
技术标签:
【中文标题】我需要一种在 ASP.NET 网络表单中的控件中显示 JSON 和 XML 的方法【英文标题】:I need a way to display JSON and XML in a control in ASP.NET webform 【发布时间】:2021-04-02 13:31:56 【问题描述】:所以我正在使用 WebClient 类调用 Web API 网络服务。 我的响应可以是 XML 或 JSON。有没有我可以使用的控件 这将很好地格式化响应或者我需要编写例程 在需要的地方放置休息时间?现在我只是分配 对 asp 文字的响应字符串。但是看起来不是很 将它作为一个连续的字符串很好,如下所示: "RateID":"USCA-SDSD-TOU5-0000","RateName":"TOU-A-2","RateType":"使用时间","Sector":"商业工农业","API_Url ":"RateAPI.com","RatePlan_Url":"http://regarchive.sdge.com/tm2/pdf/ELEC_ELEC-SCHEDS_TOU-A2.pdf","价格":0.1040900,"单位":"kWh"
如果有一个控件可以识别 JSON 并在逗号后放置中断或格式化 XML,那就太好了。如果它对不同的元素进行了一些颜色编码,那上面就会有肉汁。如果我只需要开始编写代码来自己进行格式化,请告诉我。提前谢谢你。
【问题讨论】:
这里是一个执行代码美化的javascript库:github.com/beautify-web/js-beautify 您确定要向用户显示原始 JSON 或 XML 吗?您是否尝试使用 Web 表单来响应 JSON 或 XML? 您好 Hans,是的,我想显示原始 JSON 和 XML,因为观众是技术人员。它是我正在构建的技术实用程序。它用于验证 API 是否正常工作。 【参考方案1】:好吧,您可以将字符串作为转换后的对象扔到 .net 中的许多数据对象之一中
一旦您将数据“获取”到 .net 数据对象中,您就真的不需要代码来呈现了。
在 Web 表单上拖放一个网格视图。
将 DetailsView 拖放到 Web 表单上。
现在,我们显示数据的代码是这样的:
Sub MyFill()
Dim strExtra As String
strExtra = "MyCoolRows: [" & TextBox1.Text & "]"
Dim MyTable As New DataSet
MyTable = JsonConvert.DeserializeObject(Of DataSet)(strExtra)
GridView1.DataSource = MyTable
GridView1.DataBind()
DetailsView1.DataSource = MyTable
DetailsView1.DataBind()
End Sub
现在我将网格视图和详细信息视图都放在页面上。我认为详细信息视图效果很好。
上述 WEE 位代码的结果是这样的:
只看上面 - 我认为 gridview 太宽了。
但是,对于几乎没有代码,没有任何设置或默认设置的详细信息视图在这里并不是一件坏事。
同样的两个对象也可以很好地渲染xml。
(数据集有一个 loadxml - 所以代替 newtonsoft,您可以使用数据集对象的 loadxml - 然后再次将其推入 Details 视图对象。
所以,代码不多——例如this(vb以上为c#)
public void MyFill()
string strExtra;
strExtra = "MyCoolRows: [" + TextBox1.Text + "]";
DataSet MyTable = new DataSet();
MyTable = JsonConvert.DeserializeObject<DataSet>(strExtra);
GridView1.DataSource = MyTable;
GridView1.DataBind();
DetailsView1.DataSource = MyTable;
DetailsView1.DataBind();
【讨论】:
谢谢阿尔伯特,但我认为你误解了我的要求。我想保留真正的 Json 和 XML 格式,只是通过适当的堆叠和缩进让它看起来更好。我能够使用 Json 的 Newtonsoft.JValue.Parse 和 XML 的 XDocument.Parse 并转换回字符串来弄清楚它。我现在唯一的问题是尝试对其进行颜色编码。我正在查看一个名为 pretty-print-json 的 jquery 插件。希望我能让它为我工作。 啊,好的——数据绑定控件当然可以实现布局(并且只需要很少的代码)——但它是一种最终用户演示的东西——不是实际的 json 字符串显示(或者可能是 xml 显示) .以上是关于我需要一种在 ASP.NET 网络表单中的控件中显示 JSON 和 XML 的方法的主要内容,如果未能解决你的问题,请参考以下文章