使用GWT中的Javascript Overlay类型创建JSON请求字符串

时间:2012-06-01 06:28:03

标签: json gwt

我们在GWT客户端使用JSO进行JSON解析。现在,我们需要将Java对象转换为JSON字符串。我只想了解,我们如何才能实现这一目标? JSO覆盖类型用于JSON解析。它是否也可以用于创建JSON请求字符串,还是我们必须通过其他方式?

1 个答案:

答案 0 :(得分:2)

在JavaScript中生成JSON对象非常简单。你可以这样做:

var obj = { "var1": "hello", "var2": "world" };

这将生成一个带有两个变量(“var1”和“var2”)及其值(“hello”,“world”)的JSON对象。 可以使用JSON.stringify(jso);方法将Object转换为String(用于发送目的)。

从java代码生成JSON数据是不可能的(因为没有有用的结果),因为所有变量都被优化为单个字符串,因此应用此方法不会产生有用的结果(如果可能的话)。

如果您已经有一个JSO对象(使用safeeval之类的东西生成)。您可以在那里编辑变量,如下所示:

public final native void newValue(String newValue) /*-{
    this.ValueName = newValue;
}-*/;

如果您希望将对象作为字符串,则必须在JSO类中定义以下方法:

    public final native String returnAsString () /*-{
    return JSON.stringify(this);
}-*/;

或在Java类中使用它:String s = (new JSONObject(jso)).toString();

通过这种方式,您可以编辑原始输入数据并将原始对象发送回服务器。

BR