2014-06-27 128 views
0

是否有可能獲得類似這樣的格式:多個JSON對象中的對象(json.net)

"list":{ 
    "one":{ 
    "fieldone":"-----", 
    "fieldtwo":"-----" 
    }, 
    "two":{ 
    "fieldone":"-----", 
    "fieldtwo":"-----" 
    } 
} 

我不想[]數組或名稱「一」和「二」被刪除,我努力得到確切的以下格式。

+0

是對問題編碼,解碼或顯示數據? – doctorlove

+0

我有數據,我想這樣序列化成這種格式,但我看不到如何在json對象中添加多個json對象,當我使用列表對象時,「列表」成爲一個數組而不是一個json對象和「上」和「兩」字​​段只是消失。 – user2443476

+0

使用自定義'JsonConverter'。 http://james.newtonking.com/json/help/index.html?topic=html/CustomJsonConverter.htm –

回答

0

如果你把你的項目放入字典而不是列表中,那麼你可以得到你想要的結果。下面是一個例子:

class Program 
{ 
    static void Main(string[] args) 
    { 
     RootObject obj = new RootObject(); 
     obj.Items = new Dictionary<string, Item>(); 
     obj.Items.Add("one", new Item { FieldOne = "foo", FieldTwo = "bar" }); 
     obj.Items.Add("two", new Item { FieldOne = "fizz", FieldTwo = "bang" }); 

     string json = JsonConvert.SerializeObject(obj, Formatting.Indented); 
     Console.WriteLine(json); 
    } 
} 

class RootObject 
{ 
    [JsonProperty("list")] 
    public Dictionary<string, Item> Items { get; set; } 
} 

class Item 
{ 
    [JsonProperty("fieldone")] 
    public string FieldOne { get; set; } 
    [JsonProperty("fieldtwo")] 
    public string FieldTwo { get; set; } 
} 

輸出:

{ 
    "list": { 
    "one": { 
     "fieldone": "foo", 
     "fieldtwo": "bar" 
    }, 
    "two": { 
     "fieldone": "fizz", 
     "fieldtwo": "bang" 
    } 
    } 
}