2013-04-05 17 views
30

Mam # listy C, która wygląda tak:C# za pomocą JSON serializacji Json.NET

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

używam poniżej konwertować/serializacji do JSON (Newtonsoft.JSON):

var json = JsonConvert.SerializeObject(reqUsers); 

z powyższego kodu otrzymuję ciąg json tak:

[{ 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]" } ] 

jednak tutaj jest to, czego potrzebujesz, aby: ponieważ używam kierownicę 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]" } ] 

Jak użyć Serializera do nazwania tablicy JSON jak powyżej?

Odpowiedz

67

Zastosowanie:

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

pracował jak urok! dziękuję ... –

+0

Podczas uzyskiwania dostępu do josona w JS musiałem użyć "var thejson = @ Html.Raw (json); ' nie mieć problemów z cytatami – SeanKPS

1

zastosowanie:

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

Używa to przestrzeni nazw System.Web.Script.Serialization zamiast Netwonsoft.Json, jak był używany oryginalny plakat. Jest to jednak ważna opcja. – DesertFoxAZ

Powiązane problemy