【问题标题】:How to Format JSON output from web service asmx to use with Google visualization如何格式化来自 Web 服务 asmx 的 JSON 输出以用于 Google 可视化
【发布时间】:2014-08-14 18:31:01
【问题描述】:

我有一个输出 JSON 字符串的 .asmx 网络服务,如下所示:

"d":"{\"cols\": [{\"type\": \"datetime\" ,\"id\": \"EvenDate\" ,\"label\": \"EvenDate\" }, {\"type\": \"number\" ,\"id\": \"Entries\" ,\"label\": \"Entries\" }], \"rows\" : [{\"c\" : [{\"v\": \"Date(2014, 5, 16, 0, 0, 0)\"}, {\"v\": 1}]}, {\"c\" : [{\"v\": \"Date(2014, 5, 22, 0, 0, 0)\"}, {\"v\": 1}]}, {\"c\" : [{\"v\": \"Date(2014, 5, 23, 0, 0, 0)\"}, {\"v\": 5}]}]}"}

Google Visualization 要求数据是这样的。

{
  "cols": [
        {"id":"","label":"Topping","pattern":"","type":"string"},
        {"id":"","label":"Slices","pattern":"","type":"number"}
      ],
  "rows": [
        {"c":[{"v":"Mushrooms","f":null},{"v":3,"f":null}]},
        {"c":[{"v":"Onions","f":null},{"v":1,"f":null}]},
        {"c":[{"v":"Olives","f":null},{"v":1,"f":null}]},
        {"c":[{"v":"Zucchini","f":null},{"v":1,"f":null}]},
        {"c":[{"v":"Pepperoni","f":null},{"v":2,"f":null}]}
      ]
}

我的 JSON 输出很好,除了 web 服务添加了 d:\ 但我认为 \ 只是转义字符。有没有办法从 JSON 响应中删除 d:

这是我的网络服务:

' google datatable json wrapper
Imports Google.DataTable.Net.Wrapper
...
Dim dt As System.Data.DataTable
dt = tlsession.FillSessionTable(sqlstr)
Dim dataTable = SystemDataTableConverter.Convert(dt)
Dim jsonString As String = dataTable.GetJson()
Return jsonString

您能否指出我如何修复 JSON 输出的正确方向?谢谢!

【问题讨论】:

标签: asp.net json web-services google-visualization asmx


【解决方案1】:

我发现直接从 .net 网络服务获取 Google DataTable 的最简单方法是使用 Google DataTable .Net Wrapper。他们的文档写得很清楚,所以我不会在这里举例说明太多细节。我会说您可以使用该库将 System.Data.DataTable 转换为 Google DataTable 的出色 JSON 表示形式,它甚至可以将 DateTime 对象正确地序列化为 Google Visualization API 使用的更不常见的格式。

编辑:另外,他们有一个 NuGet 包here

【讨论】:

  • 谢谢。当我尝试使用 asmx 和 ajax 时,这解决了我的问题。
  • 我没有亲自使用过 ASP.Net Web Services,但它仍然是 ASP.Net,所以我想你应该能够发送任何你想要的响应,只要你知道如何。因此,您仍然可以使用 AJAX 调用来获取此库返回的 JSON。我也在用 ASP.Net Web API 做同样的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-19
  • 2012-07-04
  • 2011-06-30
  • 2011-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多