2017-04-13 32 views
0

如何將數組傳遞給JsonConvert.SerializeObject?我有以下工作JSON,但無法將它放入序列化函數,因爲它需要一個數組。如何在json.net中使用數組

"recipients": [ 
    { 
     "address": "[email protected]" 
    }, 
    { 
     "address": "[email protected]" 
    }, 
    { 
     "address": "[email protected]" 
    } 
] 

我是新來的c#和任何幫助將是偉大的,謝謝!

C#體:

recipients = new Array { 

       } 
+2

這不是有效的JSON。它缺少外括號 - ''''''''。這是一個錯字嗎? – dbc

+0

您還沒有指定目標結構的外觀。另外,我假設你犯了一個錯誤,你的意思是說你試圖反序列化你的json,而不是序列化它,因爲你沒有顯示出源C#對象。 –

+0

@dbc這只是我請求的一部分。 –

回答

2

偉大的方式來創建C#類從JSON是http://json2csharp.com/。當我包你的JSON成花括號@dbc建議貼有下面的代碼生成:

public class Recipient 
{ 
    public string address { get; set; } 
} 

public class RootObject 
{ 
    public List<Recipient> recipients { get; set; } 
} 

現在你可以反序列化這樣的:

RootObject myObject = JsonConvert.DeserializeObject<RootObject>(myJSON); 
0

爲了建立一個有效的JSON對象,請在下面JsonDocument指http://json.org/

對於下面的模型,

public class Model 
{ 
    public string[] recipients { get; set; } 
} 

string jsondoc = "{\"recipients\": [\"[email protected]\",\"[email protected]\",\"[email protected]\"]}" 

下面一段代碼shoule能夠反序列化JSON文檔

Model obj = new Model(); 
using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(jsondoc))) 
{ 
    DataContractJsonSerializer deserializer = new DataContractJsonSerializer(typeof(Model)); 
    obj = (Model)deserializer.ReadObject(ms); 
}