2011-06-29 172 views
0

問題使用JavaScriptSerializer序列化時,遇到了奇怪的外殼導致JSON很簡單,就是在生成的JSON我有時會這樣:在.net 3.5 VB

{"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的組合框是這樣的:

{ 
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 
} 

我在代碼中設置爲displayParam帕拉姆「Visningsnamn」,當它改變套管它在JsonStore或組合作爲displayParam不工作,因爲JSON從以同樣的方式命名的服務器心不是返回。

任何idéas或想什麼,這是怎麼回事,導致這是值得歡迎的!

回答

0

@DanielEldström 您遇到的這種情況下的準確性問題是什麼。 您可以使用index.like this[1][0] and this[1][1]訪問客戶端的數據。

+0

對不起,我應該也解釋了即時消息在客戶端做什麼。將使用該信息更新問題。 –