2012-06-20 6 views
8

मैं एमवीसी 4 का उपयोग कर एक वेब एपीआई बना रहा हूं और कुछ अनुरोध टेक्स्ट रिटर्न ब्लॉक जिनमें लाइन ब्रेक, विशेष पात्र, चीनी और स्पेनिश टेक्स्ट हो सकते हैं। एपीआई के माध्यम से भेजने के लिए मुझे इस जानकारी को कैसे बचाना/एन्कोड करना चाहिए?JSON REST वेब एपीआई के लिए टेक्स्ट एन्कोडिंग के लिए मानक क्या है?

उत्तर

2

UTF-8 एन्कोडिंग का उपयोग कर इस तरह कुछ है, एक सरल उदाहरण के रूप में

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

यूटीएफ -8 का उपयोग करके एनकोड टेक्स्ट, JSON और HTTP एन्कोड का उपयोग करें। बहुत हो गया। जब आपके पास लाइन ब्रेक और अन्य विशेष वर्ण होते हैं तो HTTP एन्कोड उपयोगी होता है।

Standart यहाँ है http://www.ietf.org/rfc/rfc4627.txt?number=4627

लेकिन आपको पता होना चाहिए कि विभिन्न json formatters विशेष मामलों में थोड़ा अलग परिणाम सकता है, सवाल दिनांक/समय सांकेतिक शब्दों में बदलना करने के लिए कैसे में उदाहरण के लिए। साथ UTF-8 और 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; 
     } 
संबंधित मुद्दे