My C#web方法使用JavaScriptSerializer以字符串格式返回名为jSONstring的JSON对象。我的javascript然后使用jquery.deserialize并执行以下操作:
$("#form").deserialize(JSON.parse(jSONstring));
除了映射到元素数组之外,这似乎工作正常。
我的HTML如下:
<input name="AccountID" value="" />
<input name="Account[0].name" value="" />
<input name="Account[1].name" value="" />
<input name="Account[2].name" value="" />
从服务器返回的JSON对象如下所示:
'{"AccountID": 123, "Account":[{"name": "AccountName1"},{"name": "AccountName2"},{"name": "AccountName3"}]}'
在调用反序列化后,AccountID已更新,但帐户名永远不会更新为AccountName1,AccountName2,AccountName3。
我尝试将输入元素重命名为以下内容,但仍无效:
<input name="Account.name" value="" />
<input name="Account.name" value="" />
<input name="Account.name" value="" />
我做错了什么?
答案 0 :(得分:1)
该插件不支持该格式,它仅支持从jQuery.serialize,jQuery.serializeArray和jQuery.serializeObject(非官方)生成的数据。也就是说,编写一个将您返回的JSON对象转换为上面列出的格式之一的小函数并不难。另一种选择是使用不同的序列化方法,例如参数化。