2012-07-05 29 views
37

Duplicar posibles:
Turn C# object into a JSON string in .NET 4Convertir objeto de cadena JSON en C#

En Java, que tiene un código para convertir objetos Java a cadena JSON. ¿Cómo hacer lo similar en C#? ¿Qué biblioteca JSON debería usar?

Gracias.

código Java

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

Deberías intentar esto en C# y mostrarnos el código que estás intentando. Tal como está escrito, esta pregunta es poco más que una búsqueda en google lejos de una respuesta, y no agrega valor por encima de eso. Edite su pregunta para incluir lo que ha intentado en C# y lo que no funciona. –

+0

@George Stocker Él está preguntando sobre la serialización y está mostrando un duplicado de la deserialización, ¿por qué? –

+0

@GovindKamalaPrakashMalviya De la miríada de duplicados, leí mal y elegí el incorrecto. Gracias por atrapar eso. –

Respuesta

74

he utilizado Newtonsoft JSON.NET (Documentation) Se le permite crear una clase/objeto, rellena los campos, y como serializar 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

Hola, esta respuesta funciona, pero ¿hay alguna manera de serializar el objeto a un formato de JavaScript como nuevo? {Name = "Myname"} sería serializado a {name: "MyName"}. Gracias –

+1

@LexyFeito Veo que nadie ha respondido su pregunta. Uso: 'ajustes var = {JsonSerializerSettings nuevos ContractResolver = new CamelCasePropertyNamesContractResolver()};' ' settings.Converters.Add (nueva StringEnumConverter());' ' var = json JsonConvert.SerializeObject (myReturnData, Formatting.Indented, configuración); ' – Kody

+0

Tanques de trabajo @@ –

36

Uso de clases de .NET incorporado JavaScriptSerializer

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

cómo manejar 'json.put ("totalCount", total); ¿? – user595234