2009-06-29 12 views

Respuesta

10

¿Has probado JSON.net?

+0

me gustaría crear un método de ayuda similar a ti en .NET 3.5, obviamente no tengo la biblioteca que Scott menciona aquí, pero me gustaría hacerla mía. Supongo que sería más fácil decirlo que hacerlo: http://weblogs.asp.net/scottgu/archive/2007/10/01/tip-trick-building-a-tojson-extension-method-using-net- 3-5.aspx – PositiveGuy

+0

¿Qué quieres decir? Es realmente fácil ... – jfar

+2

en el trabajo estamos atrapados con .net 2.0 y uso json.net, funciona bien. –

1

JSON.org tiene referencias a una serie de serializadores en varios idiomas, incluyendo más de media docena en C#. Debería poder encontrar uno que satisfaga sus necesidades de licencia y API, incluido JSONsharp con la licencia LGPL y el bien diseñado Json.NET.

Si lo que está serializando es bastante simple, no es tan difícil escribir el suyo para un propósito específico. El sitio JSON.org tiene la sintaxis, y es muy directo.

+0

no puede usar Json.NET, requiere .NET 3.5 SP1. – PositiveGuy

+0

El JSONsharp debería ser lo que quieras. Es LGPL, incluye fuente, tiene la objeción de tomar un objeto y serializarlo, y solo requiere .Net 2.0. – lavinio

11

Puede utilizar la clase JavaScriptSerializer de ASP.NET Ajax 1.0, que es compatible con .NET 2.0.

+0

preferiría no instalar ese marco ya que no estoy usando controles ASP.NET AJAX. Usamos jQuery – PositiveGuy

+0

Es una clase del lado del servidor. No tiene que usar el código del lado del cliente para usar esa clase. –

+0

sí, lo sé. Es posible que me haya vendido aquí, ya que no tenemos .NET 3.5 – PositiveGuy

1

¿Está intentando construir un servidor RPC en el lado .NET? Si es así, mira a Jayrock (jayrock.berlios.de). Obtiene el código fuente y compilará en 2.0.

también el establecimiento de un servidor RPC es un broche de presión:

using Jayrock; 
using Jayrock.JsonRpc; 
using Jayrock.JsonRpc.Web; 
using Jayrock.Json; 
using Jayrock.Json.Conversion; 


namespace myRPCService 
{ 
    [JsonRpcService("Service")] 
    public class Service : JsonRpcHandler 
    { 

     [JsonRpcMethod("call", Idempotent = true)] 
     public string call(string value) 
     { 
      JsonObject oJSON = JsonConvert.Import(typeof(JsonObject), value) as JsonObject; 
      ... 
      return oJSON.ToString(); 
     } 
    } 
} 
+0

tratando de devolver JSON a través de una llamada a nuestro.ashx page – PositiveGuy

-1

utilizo a continuación el código de mensaje JSON y funciona bien para mí.

public static class JSONHelper 
{ 
    public static string ToJSON(this object obj) 
    { 
     JavaScriptSerializer serializer = new JavaScriptSerializer(); 
     return serializer.Serialize(obj); 
    } 
} 

Llamando al serializador JSON en WCF.

[OperationContract] 
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json)] 
public string LoadDetails() 
{ 
    LogDetails objSubLog = new LogDetails(); 
    List<LogDetails> lstLogdetails; 
    DAL objDAL = new DAL(); 
    lstLogdetails = objDAL.GetLog("ALL", objSubLog); 
    return lstLogdetails.ToJSON(); 
} 
+0

Esto fue muy útil porque no pude usar una versión reciente de Json.NET debido a una dependencia existente con una versión heredada de Sitecore. –

+0

'JavaScriptSerializer' no está disponible para .NET 2.0 https://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer(v=vs.90).aspx – TarasB

+0

JavaScriptSerializer no está disponible en .net 2.0 – Bogdan

1

Pude respaldar la implementación de System.Json de Mono a C# 2.0 con algunos pequeños cambios.

Necesitará 5 archivos de here y JavaScriptReader.cs de here.

Tenga en cuenta que con System.Json tendrá que serializar manualmente cualquier tipo de datos no primitivos. (Consulte here)

Cuestiones relacionadas