0

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

为清楚起见,我的班级中有这个成员变量:

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

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

"myFunction":"$.foo.Bar"

我需要的是:

"myFunction":$.foo.Bar

作为背景知识,myFunction 变量的值正在传递给 jQueryisFunction函数。当它作为字符串传入时,显然它返回 false。

我尝试用String自定义类型替换它并提供序列化程序,但后来我被困在生产一个JsonPrimitive没有帮助的元素上。

4

1 回答 1

1

您不能使用 gson 执行此操作,因为这不是 json.org 中定义的有效 json 格式。

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

String gson = "string containing somewhere in \"myFunction\":\"$.foo.Bar\" ...";
gson = gson.replace("\"myFunction\":\"$.foo.Bar\"", "\"myFunction\":$.foo.Bar");
于 2013-07-02T18:59:18.260 回答