在使用Gson生成JSON時,有時會遇到需要在字符串中添加斜杠的情況,比如使用正則表達式時,需要將特殊字符進行轉義。Gson提供了一種簡單的方法,只需要在對應的值前添加注解@SerializedName(escape = true)
即可。
public class Person { @SerializedName(value = "name", escape = true) private String name; // 其他屬性和方法 }
在上述示例中,我們對name屬性添加了@SerializedName
注解,并設置了escape = true
。這意味著在生成JSON時,所有包含特殊字符的值都會被自動轉義。
Gson gson = new Gson(); Person person = new Person(); person.setName("I'm a \"good\" person"); String json = gson.toJson(person); System.out.println(json);
如上述代碼所示,當我們給name屬性賦值 "I'm a "good" person" 時,生成的JSON字符串中,被轉義后的雙引號前面都會自動添加一個斜杠。結果如下:
{ "name": "I'm a \"good\" person" }
這在實際開發中非常有用,可以避免因為特殊字符而導致JSON解析失敗的問題。