Странные странные результаты в JSON при сериализации с использованием JavaScriptSerializer в .net 3.5 vb - PullRequest
0 голосов
/ 29 июня 2011

Проблема заключается просто в том, что в полученном json я иногда получаю это:

{"success":true, "tests":[{"visningsNamn":"Test1","id":1},{"visningsNamn":"Test2","id":2}]}

И в других случаях я получаю это:

{"success":true, "tests":[{"Visningsnamn":"Test1","id":1},{"Visningsnamn":"Test2","id":2}]}

Параметр Visningsnamn получает различный регистр от времени квремя.Кажется случайным, и в коде, который получает данные и сериализует их между моментами возникновения проблемы, изменений не было:

 Dim tbl = From t In db.Guideinriktningars Order By t.Visningsnamn Ascending Select t.Visningsnamn, t.id

    If Not query = "" Then
      tbl = From t In tbl Where t.Visningsnamn.ToLower.Contains(query.ToLower)
    End If

Dim dataString As String = ""
    dataString = "{""success"":true, """ & root & """:"

   Dim s As New System.Web.Script.Serialization.JavaScriptSerializer
    dataString += s.Serialize(tbl).ToString
    dataString += "}"
    c.Response.Write(dataString)

На стороне клиента я использую эту информацию для всплывающего списка ExtJs Combobox, например:

{
fieldLabel: 'Inriktning',
xtype: 'combo',
store: new Ext.data.JsonStore({
url: '_handlers/handleInriktningTexter.ashx',
editor: this,
root: 'inrs',
baseParams: { func: 'loadAll', root: 'inrs' },
fields: ['id', 'Visningsnamn']
}),
displayField: 'Visningsnamn',
valueField: 'id',
valueParam: 'id',
triggerAction: 'all',
forceSelection: true,
mode: 'remote',
emptyText: 'Välj inriktning...',
name: 'inrId',
id: 'inrId',
width: 250,
allowBlank: false
}

Я устанавливаю параметр "Visningsnamn" в коде как displayParam, и когда он меняет корпус, он не работает в JsonStore или в комбинированном списке как displayParam, поскольку json, возвращаемый с сервера, не назван в том же самомспособ.

Любые идеи или мысли о том, что происходит, вызывают это, приветствуются!

1 Ответ

0 голосов
/ 29 июня 2011

@ Даниэль Элдстрем С какой проблемой вы сталкиваетесь в этом случае чувствительности. Вы можете получить доступ к данным на стороне клиента, используя index.like this[1][0] and this[1][1].

...