nam*_*ami 6 .net vb.net asp.net json .net-3.5
目前,我正在构建json数据如下:
<%@ Page Language="VB" Debug="True" EnableViewState="false" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.IO" %>
<script runat="server">
Dim objSQLConnection As SqlConnection
Dim objSQLCommand As SqlCommand
Dim objSQLDataReader As SqlDataReader
Dim objJSONStringBuilder As StringBuilder
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Response.Clear()
Response.ContentType = "application/json"
Response.Write(get_json())
Response.End()
End Sub
Function get_json() As String
objJSONStringBuilder = New StringBuilder()
objSQLConnection = New SqlConnection(System.Configuration.ConfigurationManager.AppSettings("connString"))
objSQLCommand = New SqlCommand("sql query goes here", objSQLConnection)
objJSONStringBuilder.Append("[")
objSQLCommand.Connection.Open()
objSQLDataReader = objSQLCommand.ExecuteReader()
While objSQLDataReader.Read()
objJSONStringBuilder.Append("{")
objJSONStringBuilder.Append("""col1""")
objJSONStringBuilder.Append(":")
objJSONStringBuilder.Append("""" & objSQLDataReader("col1") & """")
objJSONStringBuilder.Append(",")
objJSONStringBuilder.Append("""col2""")
objJSONStringBuilder.Append(":")
objJSONStringBuilder.Append("""" & objSQLDataReader("col2") & """")
objJSONStringBuilder.Append(",")
objJSONStringBuilder.Append("""col3""")
objJSONStringBuilder.Append(":")
objJSONStringBuilder.Append("""" & objSQLDataReader("col3") & """")
objJSONStringBuilder.Append("},")
End While
objSQLDataReader.Close()
objSQLCommand.Connection.Close()
objJSONStringBuilder.Remove(objJSONStringBuilder.Length - 1, 1)
objJSONStringBuilder.Append("]")
Return objJSONStringBuilder.ToString
End Function
</script>
Run Code Online (Sandbox Code Playgroud)
这是使用.NET创建JSON数据的首选方法吗?
我想我应该使用asmx web服务,并将数组转换为json?但我见过的所有例子都在C#中.
我的盒子上没有VB,但如果你想使用JavaScriptSerializer Class,你的项目必须针对.NET Framework 3.5或.NET Framework 4.0(不是.NET Framework 3.5 Client Profile既不是.NET Framework 4.0 Client Profile).将System.Web.Extensions.dll添加到引用.
C#中的一个例子是:
public String Index()
{
Object[] myArray = new Object[3];
myArray[0] = new { col1 = "foo", col2 = "bar" };
myArray[1] = new { col1 = "fizz", col2 = "buzz" };
myArray[2] = new { col1 = "fizz", col2 = "buzz" };
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize(myArray);
}
Run Code Online (Sandbox Code Playgroud)
该函数的输出是:
[{"col1":"foo","col2":"bar"},{"col1":"fizz","col2":"buzz"},{"col1":"fizz","col2":"buzz"}]
Run Code Online (Sandbox Code Playgroud)
将它转换为VB应该很容易.
更新: VB版本:
Function get_json() As String
Dim myArray(2) As Object
myArray(0) = New With {Key .col1 = "foo", .col2 = "bar"}
myArray(1) = New With {Key .col1 = "fizz", .col2 = "buzz"}
myArray(2) = New With {Key .col1 = "fizz", .col2 = "buzz"}
Dim serializer As New JavaScriptSerializer()
Return serializer.Serialize(myArray)
End Function
Run Code Online (Sandbox Code Playgroud)
相同的输出,不要忘记导入System.Web.Script.Serialization.
| 归档时间: |
|
| 查看次数: |
42302 次 |
| 最近记录: |