2015-02-07 23 views
0

我試圖將對象轉換像下面這樣:轉換對象在C#中JSON與屬性

public class MyObject 
{ 
    public ListOfStuff[] item { get; set; } 
    public string Name { get; set; } 
    public string Surname{ get; set; } 
} 

成JSON對象,看起來像這樣:

{"listofstuff":[{ 
      "@stuffone":"1", 
      "@stufftwo":"2", 
      "@stuffthree":"3", 
    }], 
"@name":"Bob", 
"@surname":"The Builder"} 

這樣,當它在稍後階段被轉換爲XML,XML文件是以屬性爲中心而不是以元素爲中心的。我有困難的部分是@屬性我使用Newtonsoft.JSON我的系列化,我在C#中如何序列化的〔實施例低於:

string myJSONObject = JsonConvert.SerializeObject(MyObject); 

預先感謝任何幫助。

+0

這是不是真正的XML - 它只是試圖轉換到JSON的具體形式。要求這些特定名稱的*原因可能是因爲XML,但是XML知識並未真正影響問題,所以我將刪除'xml'標記。 – 2015-02-07 10:47:43

回答

1

您只需要使用[JsonProperty]屬性來指定JSON名稱。下面是一個例子(忽略ListOfStuff爲了簡單 - 採用同樣的方法):

using System; 
using Newtonsoft.Json; 

public class MyObject 
{ 
    [JsonProperty("@name")] 
    public string Name { get; set; } 
    [JsonProperty("@surname")] 
    public string Surname{ get; set; } 
} 

class Test 
{ 
    static void Main() 
    { 
     var x = new MyObject { Name = "Bob", Surname = "The Builder" }; 
     Console.WriteLine(JsonConvert.SerializeObject(x)); 
    } 
} 

輸出:

{"@name":"Bob","@surname":"The Builder"} 
+0

非常感謝,我不相信我沒有想到這一點。 – est005 2015-02-07 10:58:59