gpt4 book ai didi

json - 获取和使用远程 JSON 数据

转载 作者:行者123 更新时间:2023-12-02 03:17:04 25 4
gpt4 key购买 nike

我正在开发一个小应用程序并使用 GWT 来构建它。我只是尝试向远程服务器发出请求,该服务器将返回 JSON 格式的响应。我尝试过使用覆盖类型概念,但无法使其工作。我一直在更改代码,因此它与 Google GWT 教程中的内容有些偏离。

JavaScriptObject json;
public JavaScriptObject executeQuery(String query) {
String url = "http://api.domain.com?client_id=xxxx&query=";
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET,
URL.encode(url + query));
try {
@SuppressWarnings("unused")
Request request = builder.sendRequest(null, new RequestCallback() {
public void onError(Request request, Throwable exception) {
// violation, etc.)
}

public void onResponseReceived(Request request,
Response response) {
if (200 == response.getStatusCode()) {
// Process the response in response.getText()
json =parseJson(response.getText());
} else {

}
}
});
} catch (RequestException e) {
// Couldn't connect to server
}
return json;
}

public static native JavaScriptObject parseJson(String jsonStr) /*-{
return eval(jsonStr );
;
}-*/;

在 chrome 的调试器中,我遇到了伞异常,无法看到堆栈跟踪,并且 GWT 调试器因 NoSuchMethodError 而终止...有什么想法、指示吗?

最佳答案

您可以查看GWT AutoBean framework .

AutoBean 允许您在普通旧 Java 对象之间序列化和反序列化 JSON 字符串。

对我来说,这个框架变得至关重要:

  • 代码比 JSNI 对象(JavaScript native 接口(interface))更干净
  • 不依赖于 Google 不支持的框架(例如 RestyGWT)

您只需使用 getter 和 setter 定义接口(interface):

// Declare any bean-like interface with matching getters and setters, 
// no base type is necessary
interface Person {
Address getAddress();
String getName();
void setName(String name):
void setAddress(Address a);
}

interface Address {
String getZipcode();
void setZipcode(String zipCode);
}

稍后您可以使用工厂序列化或反序列化 JSON 字符串 ( See documentation ):

// (...)

String serializeToJson(Person person) {
// Retrieve the AutoBean controller
AutoBean<Person> bean = AutoBeanUtils.getAutoBean(person);

return AutoBeanCodex.encode(bean).getPayload();
}

Person deserializeFromJson(String json) {
AutoBean<Person> bean = AutoBeanCodex.decode(myFactory, Person.class, json);
return bean.as();
}

// (...)

关于 Stack Overflow 的第一篇文章 (!):我希望这会有所帮助:)

关于json - 获取和使用远程 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5518485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com