提問標籤為 C#,但程式碼明顯為 **JavaScript** 語法。變數 itema 構建方式混淆了字串拼接與物件字面量,導致無法正確動態賦值屬性。
// 1. 直接使用物件字面量建立結構
var itema = {
"pictures": {
name: 'Pictures',
type: 'folder',
'icon-class': 'red'
}
};
// 2. 動態新增屬性:兩種等價方式
// 方式 A:括號語法(適合屬性名為變數時)
itema['pictures']['additionalParameters'] = {
'children': [
{ name: '<i class="icon-music blue"></i> song1.ogg', type: 'item' },
{ name: '<i class="icon-music blue"></i> song2.ogg', type: 'item' }
// ...更多項目
]
};
// 方式 B:點語法(屬性名固定時更簡潔)
itema.pictures.additionalParameters = { /* 同樣結構 */ };
obj['key'] 與 obj.key 等價,前者支援變數作為鍵名:var k='name'; obj[k]。JSON.stringify(obj) 序列化;接收端用 JSON.parse(str) 反序列化。Newtonsoft.Json (Json.NET) 或 System.Text.Json,定義對應類別進行反序列化。