2013-04-05 52 views
30

Tôi có một C# Danh sách mà trông như thế này:C# để JSON serialization sử dụng JSON.Net

var reqUsers = from user in users 
    select new 
    { 
     username = user.username, 
     firstName = user.firstName, 
     lastName = user.lastName, 
     email = user.email 
    }; 

tôi sử dụng dưới đây để chuyển đổi/serialize để JSON (Newtonsoft.JSON):

var json = JsonConvert.SerializeObject(reqUsers); 

với đoạn mã trên tôi nhận được một chuỗi json như thế này:

[{ username: "alan", firstName: "Alan", lastName: "Johnson", email: "[email protected]" }, 
{ username: "allison", firstName: "Allison", lastName: "House", email: "[email protected]" }, 
{ username: "ryan", firstName: "Ryan", lastName: "Carson", email: "[email protected]" } ] 

tuy nhiên đây là những gì tôi cần phải nhận được: kể từ khi tôi đang sử dụng tay lái templatin g -

var testdata = { 
    users: [ 
    { username: "alan", firstName: "Alan", lastName: "Johnson", email: "[email protected]" }, 
    { username: "allison", firstName: "Allison", lastName: "House", email: "[email protected]" }, 
    { username: "ryan", firstName: "Ryan", lastName: "Carson", email: "[email protected]" } ] 

Làm cách nào để sử dụng Trình nối tiếp để đặt tên mảng JSON như trên?

Trả lời

67

Sử dụng:

var json = JsonConvert.SerializeObject(new { users = reqUsers }); 
+1

làm việc như một nét duyên dáng! cảm ơn bạn ... –

+0

Khi truy cập joson trong JS tôi đã phải sử dụng 'var thejson = @ Html.Raw (json);' để không có vấn đề với các dấu ngoặc kép – SeanKPS

1

sử dụng:

var json= new JavaScriptSerializer().Serialize(reqUsers); 
+0

Điều này đang sử dụng không gian tên System.Web.Script.Serialization thay vì Netwonsoft.Json làm áp phích ban đầu đang sử dụng. Đó là một lựa chọn hợp lệ tuy nhiên. – DesertFoxAZ

Các vấn đề liên quan