我想将一些对象jsonize进行转移。我的Dummy类产生的结果与预期完全不同。 以下代码的输出为result = {" id":3}:
package client;
import com.google.gwt.core.client.EntryPoint;
import java.io.Serializable;
public class TestModul implements EntryPoint
{
public void onModuleLoad()
{
Dummy dummy = new Dummy();
dummy.setDummyText("test");
String result = jsonDummy(dummy);
System.out.println("result="+result);
}
public static final native String jsonDummy(Dummy dummy) /*-{
console.log("JsonDummy:" + dummy)
str = JSON.stringify(dummy);
console.log("stringified:" + str)
return str;
}-*/;
public class Dummy implements Serializable
{
String dummyText;
public String getDummyText()
{
return dummyText;
}
public void setDummyText(String dummyText)
{
this.dummyText = dummyText;
}
@Override
public String toString()
{
return "Dummy{" + "dummyText='" + dummyText + '\'' + '}';
}
}
}
console.log只是给了我
JsonDummy:Dummy{dummyText='test'}
stringified:{"id":3}
我设置了一个新的标准GWT-Project来测试它。使用超级发展模式。我完全混淆了这里出了什么问题。有什么想法吗?
答案 0 :(得分:1)
如果要在不依赖于JavascriptObject或AutoBean接口的情况下使用POJO,则应使用将为您进行序列化的库。
这是2只进行序列化/反序列化:
还有RestyGWT。它面向REST,但您可以使用其序列化机制。
我认为Errai也有机制,但我从未尝试过。
答案 1 :(得分:0)
id = 3似乎表示对字符串的一些引用,当我有更多的字符串时,ID会发生变化。 我决定用
手动进行JSONizingJSONObject someObject = new JSONObject();
...
someObject().stringify()
并且已在How to genearte JSON on the client中回答。 用于GWT的JSONizing-Frameworks需要注释我的类,这不是我想要的。跨站点域通信似乎不是GWT的最佳选择。
我的tipp:使用GWT开发时:永远不需要使用跨域请求使用RPC!...