在我的項目中,Web瀏覽器發送一個json對象回服務器端(服務器端我使用Asp.net mvc和c#)。 JSON對象象下面這樣:如何修改List中的值<Dictionary <string,object >>
[{
id : "myid",
name : "myname",
type : "mytype",
items : [{
id: "item_id_1",
name : "item_name_2",
isInput : true,
value : value
},{
id : "item_id_2",
name : "item_name_2",
type : "mytype",
items : [...]
}]
},{
id : "myid",
name : "myname",
type : "mytype",
items : [...]
}]
在服務器端我的用戶解析JSON字符串像這樣:
JavaScriptSerializer jss = new JavaScriptSerializer();
List<Distionary<string,object>> jsonObj = (List<Distionary<string,object>>)jss.Deserialize(jsonString,typeof(List<Distionary<string,object>>));
我的問題是,如何修改jsonObj值。例如,我如何修改id爲「item_id_2」的子對象。我嘗試下面的代碼:
KeyValuePair<string,object> itemObject = (KeyValuePair<string,object>)item.FirstOrDefault(d=>d.Key == "item_id_2");
itemOject.value = "XXX"
結果是我真的修改對象itemObject但jsonObj對象沒有變化。 所以我的問題是如何修改List>中的對象。 謝謝。
ps:我也想知道編輯後,如何將對象轉換爲json字符串。 謝謝。
PS:在客戶端,下面的功能構建對象:
function toObj(item){
var obj = item.toObj();
if(item.items){
obj.items = [];
for(var i = 0;i<item.items.length;i++){
obj.items.push(toObj(item.items[i]));
}
}
return obj;
}
你能說明'item'變量是如何實例化的嗎? – decPL 2014-09-05 09:46:23