用Gson写出引用值

时间:2013-07-02 18:53:40

标签: java json gson

我有一个大的JSON数据结构,我用Gson输出,我遇到了一个项目的问题。处理JSON的JavaScript期望其中一个值是函数,但是我看不到输出不带引号的字符串的方法。

为清楚起见,我在班上有这个成员变量:

private String myFunction = "$.foo.Bar";

目前,当我将其转换为JSON时,我得到:

"myFunction":"$.foo.Bar"

我需要的是:

"myFunction":$.foo.Bar

作为一个背景,myFunction变量的值被传递给jQuery isFunction函数。当它作为字符串传入时,显然会返回false。

我尝试使用自定义类型替换String并提供序列化程序,但后来我不得不生成一个JsonPrimitive元素而没有帮助。

1 个答案:

答案 0 :(得分:1)

你不能用gson做到这一点,因为这不是json.org中定义的有效json格式。

根据性能考虑,您可以执行以下操作:

String gson = "string containing somewhere in \"myFunction\":\"$.foo.Bar\" ...";
gson = gson.replace("\"myFunction\":\"$.foo.Bar\"", "\"myFunction\":$.foo.Bar");