2012-06-20 15 views

risposta

2

Qualcosa di simile utilizzando la codifica UTF-8, come un esempio semplificato

public JsonResult Find(string term) 
{ 
    var items = service.Find(term); 
    return Json(items,"application/json; charset=utf-8", JsonRequestBehavior.AllowGet); 
} 
1

Codificare il testo utilizzando UTF-8, utilizzare la codifica JSON e HTTP. È abbastanza. La codifica HTTP è utile quando ci sono interruzioni di riga e altri caratteri speciali.

Standart è qui http://www.ietf.org/rfc/rfc4627.txt?number=4627

Ma si deve sapere che diversi formattatori JSON potrebbe produrre in casi particolari risultati leggermente diversi, ad esempio in questioni come codificare data/ora.

Esempio con UTF-8 e DataContractJsonSerializer:

 // Create a User object and serialize it to a JSON stream. 
     public static string WriteFromObject() 
     { 
      //Create User object. 
      User user = new User("Bob", 42); 

      //Create a stream to serialize the object to. 
      MemoryStream ms = new MemoryStream(); 

      // Serializer the User object to the stream. 
      DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(User)); 
      ser.WriteObject(ms, user); 
      byte[] json = ms.ToArray(); 
      ms.Close(); 
      return Encoding.UTF8.GetString(json, 0, json.Length); 

     } 

     // Deserialize a JSON stream to a User object. 
     public static User ReadToObject(string json) 
     { 
      User deserializedUser = new User(); 
      MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)); 
      DataContractJsonSerializer ser = new DataContractJsonSerializer(deserializedUser.GetType()); 
      deserializedUser = ser.ReadObject(ms) as User; 
      ms.Close(); 
      return deserializedUser; 
     } 
Problemi correlati