2010-11-10 14 views
81

मैंने देखा कि Gson स्ट्रिंग "<" स्ट्रिंग को JSON आउटपुट में एक यूनिकोड एस्केप अनुक्रम में परिवर्तित करता है। क्या आप इसे किसी भी तरह से टाल सकते हैं, या "<" और ">" जैसे वर्ण हमेशा जेएसओएन से बच निकले हैं?क्या आप जीसन को "<" and ">" को यूनिकोड एस्केप दृश्यों में परिवर्तित करने से बच सकते हैं?

इस उदाहरण पर विचार करें जो {"s":"\u003c"} प्रिंट करता है; मैं बस {"s":"<"} चाहता हूँ।

public static void main(String[] args) { 
    Gson gson = new GsonBuilder().create(); 
    System.out.println(gson.toJson(new Foo())); 
} 

static class Foo { 
    String s = "<"; 
} 

संदर्भ: जेएसओएन का टुकड़ा मैं बना रहा हूं HTML पृष्ठों या यहां तक ​​कि जावास्क्रिप्ट के साथ कुछ भी नहीं है; इसका उपयोग कुछ संरचित जानकारी को सॉफ़्टवेयर के दूसरे टुकड़े (सी में लिखे गए डिवाइस में एम्बेडेड) में पास करने के लिए किया जाता है।

+1

क्या जीएसओएन ऐसा करने के लिए डिफ़ॉल्ट है? वाह। यह अजीब डिफ़ॉल्ट सेटिंग है, हालांकि जेएसओएन स्पेक परिप्रेक्ष्य से पूरी तरह से कानूनी बात है। – StaxMan

+1

हाँ, यह भी मेरे लिए आश्चर्यजनक था। सौभाग्य से [उपाय] (http://stackoverflow.com/questions/4147012/can-you-avoid-gson-converting-and-into-unicode-escape-sequences/4147245#4147245) एक बार जब आप जानते हैं कि कहां देखना है तो यह आसान है । :) अन्यथा, इसके साथ एक दिन के अनुभव के बाद, मुझे एक महान [उपयोगकर्ता मार्गदर्शिका] (http://sites.google.com/site/gson/gson-user-guide) के साथ, वास्तव में एक अच्छी, अच्छी लाइब्रेरी जीसन मिलती है। ! – Jonik

+3

यह "=" वर्ण भी होता है, जो "\ u003d" में बदल जाता है। –

उत्तर

163

आपको disable HTML escaping की आवश्यकता है।

Gson gson = new GsonBuilder().disableHtmlEscaping().create(); 
+1

हाँ, यह था। धन्यवाद! – Jonik

+0

आपका स्वागत है। – BalusC

+0

हाँ !! काम कर रहा है .. –

संबंधित मुद्दे