跳到主要內容

[Web Service] Web service return json

Webservice 要output JSON格式的資料
在web service中
method 要加上
[ScriptMethod(ResponseFormat:=ResponseFormat.Json)] _
class
要先設定[ScriptService()] 這樣Jquery.ajax才能使用

[web service]

Imports System.Net
Imports System.IO
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Web.Script.Services
Imports System.ComponentModel
Imports net.gallerys.common.util
Imports PLaiN.dll
Imports log4net
Imports Newtonsoft.Json
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")>_
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
<ScriptService()> _
Public Class WebService
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function HelloWorld() As String
Return "Hello World"
End Function

<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _
Function ListProduct2() As String
Dim plainDB As New      PLaiNDB_CTX.PLaiNDBDataContext(ConfigurationManager.ConnectionStrings("plan_ecConnectionString").ConnectionString)
Dim v As List(Of outputPorduct) = (From p In plainDB.Products Order By p.AutoNO _
Select New outputPorduct _
With {.autono = p.AutoNO, .price = p.Price, .productId = p.ProductID} _
).Take(50).ToList()
Dim result As String = jsonParser(v)
Return result
End Function

Function jsonParser(ByVal o As Object) As String
Dim json As New JsonSerializer()
json.NullValueHandling = NullValueHandling.Ignore
Dim sb As New StringBuilder
Dim sw As New IO.StringWriter(sb)
Dim jw As New JsonTextWriter(sw)
json.Serialize(jw, o)
Return sb.ToString()
End Function
End Class

[HTML]
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: "POST",
url: "/WService/Webservice.asmx/ListProduct2",
contentType: "application/json",
dataType: "json",
success: function(response) {
var o=jQuery.parseJSON(response.d);
alert(o[1].key);

},
error: function(msg) {
alert("ERR" +msg.toString);

}
});


});</script>

留言

這個網誌中的熱門文章

[WEB]連線 HTTPS 網站發生驗證失敗導致基礎連接已關閉

某支透過 WebClient 物件去呼叫第三方API的程式,突然有天無法使用 經過測試出現下列的錯誤 基礎連接已關閉: 傳送時發生未預期的錯誤。 InnerException : 驗證失敗,因為遠端群體已經關閉傳輸資料流。 原來是第三方的服務已經不支援 TLS 1.0 我方的程式是用.net Framework 4.0開發了 得強制讓webclient改用 TLS 1.1 或 TLS 1.2 感謝黑大提供解決方法 在程式中加入 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12  的設定就解決了這個問題 WebClient wc = new WebClient(); ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; 參考資料:暗黑執行緒

[SQL] SQL依照你的排序條件 找出目前資料的前一筆與下一筆。 Find Pre and Next DataRows of current Datarow by your order condition

有時候需要用SQL找出前一筆跟後一筆資料 用SQL的TOP是沒有辦法做到 這個時候就可以這個語法 select * from ( SELECT TOP 1 * FROM [Article] where Poid {CurrentPoid} order by CreateDate ASC) t2 找出目前PK id前一個與後一個的資料(依照想要排序順序) 那如果指示想要一個資料行呈現的話 可以改用下面的SQL語法 讓這兩筆資料join在同一筆 select Pre.*,Nex.* from (SELECT TOP 1 * ,1 tID FROM [dbo].[Article] where Poid {CurrentPoid} order by CreateDate ASC) Nex on Pre.tID=Nex.tID

Win10電腦 強制開啟IE瀏覽器 by VB script

 用Notapad寫下以下的內容 With CreateObject("InternetExplorer.Application") .visible = True .Navigate [Url]           .Left = 0           .Top = 0           .Height = 1024           .Width = 1280 End With 然後存檔成 .vbs 檔案 之後點選檔案就會自動啟動IE 目前測試過在WIN10 版本能正常執行