i want to create an anonymous class in vb.net exactly like this:
var data = new {
total = totalPages,
page = page,
records = totalRecords,
rows = new[]{
new {id = 1, cell = new[] {"1", "-7", "Is this a good question?"}},
new {id = 2, cell = new[] {"2", "15", "Is this a blatant ripoff?"}},
new {id = 3, cell = new[] {"3", "23", "Why is the sky blue?"}}
}
};
thx.
VB.NET 2008 does not have the new[]
construct, but VB.NET 2010 does. You cannot create an array of anonymous types directly in VB.NET 2008. The trick is to declare a function like this:
Function GetArray(Of T)(ByVal ParamArray values() As T) As T()
Return values
End Function
And have the compiler infer the type for us (since it's anonymous type, we cannot specify the name). Then use it like:
Dim jsonData = New With { _
.total = totalPages, _
.page = page, _
.records = totalRecords, _
.rows = GetArray( _
New With {.id = 1, .cell = GetArray("1", "-7", "Is this a good question?")}, _
New With {.id = 2, .cell = GetArray("2", "15", "Is this a blatant ripoff?")}, _
New With {.id = 3, .cell = GetArray("3", "23", "Why is the sky blue?")}
) _
}
PS. This is not called JSON. It's called an anonymous type.