在GWT Web应用程序中加载和保存JSON文件

时间:2012-12-18 09:43:28

标签: ajax json gwt

我们正在使用Python webapp2网络服务器开发GWT Web应用程序。此时,我们希望在Web应用程序中加载和保存文件。我们无法使用Flash完成此任务。

保存

目前的方法是使用目标“_blank”使用表单上传,并设置正确的MIME以使浏览器下载文件。此解决方案有效,但由于webapp2 Web服务器不支持流式传输(因此浏览器无法在短时间内验证mime类型),因此每次都会打开一个新的浏览器窗口。有更好的解决方案,例如使用iFrame?

装载

再次使用表单上传和解析响应(JSON)。我们使用内容类型“text / html; charset = UTF-8”。此解决方案在IE9中完美运行,但在Chrome和FireFox中不起作用。似乎JSON响应在某种程度上被破坏了,或者从表单上传响应解析JSON响应时有什么?我们使用piriti进行JSON(反)序列化。

1 个答案:

答案 0 :(得分:0)

对于加载,您可以使用RestyGWT库,它具有编码或解码Java对象到JSON的功能:

import javax.ws.rs.POST;
...
public interface PizzaOrderCodec extends JsonEncoderDecoder<PizzaOrder> {
}

// GWT will implement the interface for you
PizzaOrderCodec codec = GWT.create(PizzaOrderCodec.class);

// Encoding an object to json
PizzaOrder order = ... 
JSONValue json = codec.encode(order);

// decoding an object to from json
PizzaOrder other = codec.decode(json);

要保存,如果必须使用文件上传发送JSON文件,可以看到以下链接: http://www.jroller.com/hasant/entry/fileupload_with_gwt

http://www.celinio.net/techblog/?p=1207

度过愉快的时光。