首页 > 解决方案 > 我需要一种在 ASP.NET 网络表单中的控件中显示 JSON 和 XML 的方法

问题描述

因此,我正在使用 WebClient 类调用 Web API 网络服务。我的响应可以是 XML 或 JSON。有没有我可以使用的控件来很好地格式化响应,或者我需要编写例程来在需要的地方插入中断?现在我只是将响应字符串分配给一个 asp 文字。但是将它作为一个像这样的连续字符串看起来不太好: {"RateID":"USCA-SDSD-TOU5-​​0000","RateName":"TOU-A-2","RateType":"Time使用","Sector":"商业工农业","API_Url":"RateAPI.com","RatePlan_Url":"http://regarchive.sdge.com/tm2/pdf/ELEC_ELEC-SCHEDS_TOU-A2。 pdf","价格":0.1040900,"单位":"kWh"}

如果有一个控件可以识别 JSON 并在逗号后放置中断或格式化 XML,那就太好了。如果它对不同的元素进行了一些颜色编码,那上面就会有肉汁。如果我只需要开始编写代码来自己进行格式化,请告诉我。先感谢您。

标签: c#asp.netjsonxmlformatting

解决方案


好吧,您可以将字符串作为转换后的对象扔到 .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

现在我将一个gridview 和一个details view 放到页面上。我认为细节视图效果很好。

上述 WEE 代码的结果是这样的:

在此处输入图像描述

看看上面 - 我认为gridview太宽了。

但是,对于几乎没有代码,没有任何设置或默认值的详细信息视图在这里并不是一件坏事。

同样的两个对象也可以很好地渲染xml。

(数据集有一个 loadxml - 所以代替 newtonsoft,您可以使用数据集对象的 loadxml - 然后再次将其推入 Details 视图对象。

所以,代码并不多 - 例如这个(在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();
}

推荐阅读