2010-11-10 24 views
81

Gson'un "<" dizesini JSON çıktısında bir unicode çıkış sırasına dönüştürdüğünü fark ettim. Bunu bir şekilde önleyebilir veya "<" ve ">" gibi karakterler her zaman JSON'ta kaçmak zorunda kalır mı?Gson unicode çıkış dizilerine "<" and ">" dönüştürmesini engelleyebilir misiniz?

{"s":"\u003c"}; Ben sadece {"s":"<"} istiyorum.

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

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

İçerik: Oluşturduğum JSON parçasının HTML sayfalarıyla veya JavaScript'le hiçbir ilgisi yoktur; sadece belirli yapılandırılmış bilgileri başka bir yazılım parçasına (C dilinde yazılmış bir cihaza gömülü) aktarmak için kullanılır.

+1

GSON varsayılanı bunu yapıyor mu? Vay. Bu JSON spec perspektifinden yapmak için mükemmel yasal bir şey olsa da, oldukça garip varsayılan ayardır. – StaxMan

+1

Evet, benim için de şaşırtıcıydı. Neyse ki nereye bakacağını bildikten sonra [çare] (http://stackoverflow.com/questions/4147012/can-you-avoid-gson-converting-and-into-unicode-escape-sequences/4147245#4147245) kolaydır . :) Aksi halde, bir günlük deneyiminden sonra, Gson'u çok güzel ve temiz bir kütüphane ile harika bir [kullanıcı kılavuzu] (http://sites.google.com/site/gson/gson-user-guide) bulabilirsiniz. ! – Jonik

+3

Bu, "\" şekline dönüşen "=" karakterine de olur. –

cevap

163

disable HTML escaping'a ihtiyacınız vardır.

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

Evet, buydu. Teşekkürler! – Jonik

+0

Rica ederim. – BalusC

+0

evet! çalışıyor .. –

İlgili konular