Domanda

ho trovato ScriptingJsonSerializationSection ma non sono sicuro di come usarlo.Potrei scrivere manualmente una funzione per convertire manualmente l'oggetto in una stringa JSON, ma poiché .Net può farlo al volo con il <System.Web.Services.WebMethod()> E <System.Web.Script.Services.ScriptMethod()> attributi quindi deve esserci un modo integrato che mi manca.

PS:utilizzando Asp.Net 2.0 e VB.Net: l'ho inserito nei tag ma penso che la gente lo abbia mancato.

È stato utile?

Soluzione

Questo dovrebbe bastare

Dim jsonSerialiser As New System.Web.Script.Serialization.JavaScriptSerializer
Dim jsonString as String = jsonSerialiser.Serialize(yourObject)

Altri suggerimenti

Penso che quello che stai cercando sia questo corso:

System.ServiceModel.Web.DataContractJsonSerializer

Ecco un esempio di Rick Strahl: DataContractJsonSerializer in .NET 3,5

Poiché la classe JavaScriptSerializer è tecnicamente deprecata, credo DataContractJsonSerializer è la soluzione preferibile se si utilizza la versione 3.0+.

Bene, attualmente sto utilizzando i seguenti metodi di estensione per serializzare e deserializzare oggetti:

using System.Web.Script.Serialization;

public static string ToJSON(this object objectToSerialize)
{
  JavaScriptSerializer jss = new JavaScriptSerializer();
  return jss.Serialize(objectToSerialize);
}

/// <typeparam name="T">The type we are deserializing the JSON to.</typeparam>
public static T FromJSON<T>(this string json)
{
  JavaScriptSerializer jss = new JavaScriptSerializer();
  return jss.Deserialize<T>(json);
}

Lo uso parecchio: attenzione, questa implementazione è un po' ingenua (ad es.ci sono alcuni potenziali problemi con esso, a seconda di cosa stai serializzando e di come lo usi sul client, in particolare con DateTimes).

Nell'assembly System.Web.Extensions, versione 3.5.0.0, è presente un JavaScriptSerializer classe che dovrebbe gestire ciò che desideri.

Tentativo

System.Web.Script.Serialization.JavaScriptSerializer

o Controlla JSON.org c'è un intero elenco di librerie scritte per fare esattamente quello che vuoi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top