我有一个.asmx webservice,它输出一个像这样的JSON字符串:
"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输出很好,除了webservice正在添加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输出的正确方向?谢谢!
答案 0 :(得分:1)
我发现直接从.net网络服务获取Google DataTable的最简单方法是使用Google DataTable .Net Wrapper。他们的文档写得很清楚,所以我不会在这里用例子来详细说明。我会说你可以使用库将System.Data.DataTable转换为Google DataTable的优秀JSON表示,甚至可以将DateTime对象正确地序列化为Google Visualization API使用的更不寻常的格式。
编辑:此外,他们还有一个NuGet包here。