2012-07-05 18 views
37

Powiel możliwe:
Turn C# object into a JSON string in .NET 4Konwersja obiektu do JSON ciąg w C#

W Javie, mam kod do konwersji obiektu Javy do JSON ciąg. Jak zrobić podobne w C#? jakiej biblioteki JSON powinienem użyć?

Dzięki.

kod Java wbudowana klasa

import net.sf.json.JSONArray; 
import net.sf.json.JSONObject; 

public class ReturnData { 
    int total; 

    List<ExceptionReport> exceptionReportList; 

    public String getJSon(){ 
     JSONObject json = new JSONObject(); 

     json.put("totalCount", total); 

     JSONArray jsonArray = new JSONArray(); 
     for(ExceptionReport report : exceptionReportList){ 
      JSONObject jsonTmp = new JSONObject(); 
      jsonTmp.put("reportId", report.getReportId());  
      jsonTmp.put("message", report.getMessage());    
      jsonArray.add(jsonTmp);   
     } 

     json.put("reports", jsonArray); 
     return json.toString(); 
    } 
    ... 
} 
+0

Powinieneś spróbować w C# i pokazać nam kod, który próbujesz. Jak napisano, to pytanie jest niczym więcej niż wyszukiwanie google od odpowiedzi i nie dodaje wartości powyżej. Zmodyfikuj swoje pytanie tak, aby zawierało to, co wypróbowałeś w C#, i co nie działa. –

+0

@George Stocker On pyta o serializowanie i pokazujesz duplikat deserializacji, dlaczego? –

+0

@GovindKamalaPrakashMalviya Z niezliczonych duplikatów źle odczytałem i wybrałem niewłaściwy. Dzięki za złapanie tego. –

Odpowiedz

74

Użyłem Newtonsoft JSON.NET (Documentation) To pozwala utworzyć klasę/obiekt, wypełnianie pól, jak i szeregować JSON.

public class ReturnData 
{ 
    public int totalCount { get; set; } 
    public List<ExceptionReport> reports { get; set; } 
} 

public class ExceptionReport 
{ 
    public int reportId { get; set; } 
    public string message { get; set; } 
} 


string json = JsonConvert.SerializeObject(myReturnData); 
+1

Witam, ta odpowiedź działa, ale czy istnieje sposób serializacji obiektu do formatu javascript, tak jak nowa {Name = "Myname"} zostanie przekształcona do postaci szeregowej na {name: "MyName"}. Dziękuję –

+1

@LexyFeito Widzę, że nikt nie odpowiedział na twoje pytanie. Zastosowanie: 'ustawienia var = nowe JsonSerializerSettings {ContractResolver = nowy CamelCasePropertyNamesContractResolver()};' 'settings.Converters.Add (New StringEnumConverter());' 'var json = JsonConvert.SerializeObject (myReturnData, Formatting.Indented, ustawienia); ' – Kody

+0

Zbiorniki robocze @@ –

36

Użyj opcji Netto JavaScriptSerializer

JavaScriptSerializer js = new JavaScriptSerializer(); 
    string json = js.Serialize(obj); 
+0

jak obsługiwać "json.put (" totalCount ", total); "? – user595234