yuuuuuuuuccccckkkkk.... handcrafting JSON is a pain, thankfully there's great stuff out there by people who have thought of how to help, so some advice:
grab this .NET component and drop it in your BIN directory: http://www.codeplex.com/json (note the new version only works with .NET 3.5, grab the older one if you're in 2.0) then you can stay thinking like .NET and objects Class for each item Private Class Item Private _value As String Public Property value() As String Get Return _value End Get Set(ByVal value As String) _value = value End Set End Property Private _caption As String Public Property caption() As String Get Return _caption End Get Set(ByVal value As String) _caption = value End Set End Property Public Sub New(ByVal i_value As String, ByVal i_caption As String) Me.value = i_value Me.caption = i_caption End Sub End Class Then to generate (and at the end the NewtonSoft object will take care of all JSON converstion that $.getJSON reads with no issues) Dim Options As List(Of Item) = New List(Of Item) If Not IsNothing(qs) Then Options.Add(New Item("", "choose color")) Select Case qs Case "7141832" sku = "7141832" Options.Add(New Item("bk", "Black Oil-tanned")) Options.Add(New Item("br", "Black Polishable")) Case "7173656" sku = "7173656" Options.Add(New Item("bk", "Black")) Options.Add(New Item("br", "Crazy Horse")) Case "7269643" sku = "7269643" Options.Add(New Item("bk", "Black")) Case Else Options.Add(New Item("bk", "Black")) End Select Response.Write (Newtonsoft.Json.JavaScriptConvert.SerializeObject(Options)) End If