- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从 Servlet 获得了一个 JSON 字符串,我想使用 JavaScript 覆盖类型解析这个字符串。
我的整个编码都基于您发布的示例 google我的目标是将 JSON 字符串加载到 Article 类型的 ArrayList 中。
所以我创建了类 JSArray
public class JsArray<E extends JavaScriptObject> extends JavaScriptObject {
protected JsArray() { }
public final native int length() /*-{ return this.length; }-*/;
public final native E get(int i) /*-{ return this[i]; }-*/;
}
文章数据类
public class ArticleData extends JavaScriptObject {
protected ArticleData() {}
public final native String getId() /*-{ return this.id; }-*/;
public final native String getAmount() /*-{ return this.amount; }-*/;
public final native String getPct() /*-{ return this.pct; }-*/;
public final native String getStartAmount() /*-{ return this.startamount; }-*/;
public final native String getPrice() /*-{ return this.price; }-*/;
public final native String getStockValue() /*-{ return this.stockvalue; }-*/;
}
在我的 EntryPoint 中,我都按照以下方式上课:
String json = event.getResults();
logger.info(json);
JsArray<ArticleData> cs = getArticles(json);
for (int i = 0, n = cs.length(); i < n; ++i) {
Window.alert(cs.get(i).getId() + " " + cs.get(i).getPrice());
}
...
private native JsArray<ArticleData> getArticles(String json)/*-{
return JsonUtils.safeEval(json);
}-*/;
我的 JSON 文件:
{"articles":[
{"amount":"50","id":"1","pct":"50,00","price":"162,37","startamount":"100","stockvalue":"8118,45"},{"amount":"20","id":"2","pct":"20,00","price":"164,83","startamount":"100","stockvalue":"3296,60"},{"amount":"20","id":"3","pct":"20,00","price":"170,40","startamount":"100","stockvalue":"3408,00"},{"amount":"100","id":"4","pct":"100,00","price":"41,32","startamount":"100","stockvalue":"4132,43"},{"amount":"0","id":"5","pct":"0,00","price":"40,04","startamount":"100","stockvalue":"0,00"}]}
我总是得到这个异常(exception):
Caused by: com.google.gwt.core.client.JavaScriptException: (ReferenceError): JsonUtils is not defined at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:248) at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136) at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561) at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269) at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91) at net.mybecks.gwt.client.XMLParser.getArticles(XMLParser.java) at net.mybecks.gwt.client.XMLParser.access$2(XMLParser.java:92) at net.mybecks.gwt.client.XMLParser$2.onSubmitComplete(XMLParser.java:78) at com.google.gwt.user.client.ui.FormPanel$SubmitCompleteEvent.dispatch(FormPanel.java:115) at com.google.gwt.user.client.ui.FormPanel$SubmitCompleteEvent.dispatch(FormPanel.java:1) at com.google.gwt.event.shared.GwtEvent.dispatch(GwtEvent.java:1)
第 92 行是上面的 getArticles 方法。
我严格遵循谷歌文档,在谷歌搜索异常时没有找到任何有用的结果。仅类文档。
BR & 谢谢,迈贝克
最佳答案
为什么 getArticles()
是一个 JSNI 方法? JsonUtils
是一个普通的 GWT 类。
你的方法应该是:
private JsArray<ArticleData> getArticles(String json) {
return JsonUtils.safeEval(json);
};
关于javascript - GWT 中带有 JavaScript 覆盖类型列表的 JsonUtils 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9127219/
这个问题在这里已经有了答案: Serialize and Deserialize Json and Json Array in Unity (9 个回答) 关闭 5 年前。 这是我用于测试目的的 J
所以我一直在寻找将我的 Json 数组转换为 Unity 中的对象数组的方法。我从一个 2 年前的旧线程中找到了我的解决方案,但没有解释,但我很好奇它是如何工作的。 如果我使用 Visual Stud
这是我的 JSON: {"data":[{"id":1,"layoutLabel":"Sameer Non Custom","orbNumber":"["0","1","2","3"]"}, {"id
我想反序列化包含关卡信息的 json 文件。给定这个名为 1.json 的示例 .json 文件 { "name": "Level One", "map": [ [{ "g
我一直在学习 this 的教程视频。 教程源代码可以在here找到... 我有一个问题,我的 Json 数据都存储在 1 行中, 我希望数据在单个对象数据中换行 这里是 Json 教程的代码 Acto
我有一些数据需要序列化/反序列化,但 JsonUtility 只是没有做它应该做的事情。这是我正在使用的对象: public class SpriteData { public string
这个问题在这里已经有了答案: Serialize and Deserialize Json and Json Array in Unity (9 个回答) 关闭 5 年前。 我在将 json 字符串
我有以下类,它是可序列化的,并且只有字符串作为字段: using UnityEngine; using System.Collections; using System.Collections.Gen
我从 Servlet 获得了一个 JSON 字符串,我想使用 JavaScript 覆盖类型解析这个字符串。 我的整个编码都基于您发布的示例 google我的目标是将 JSON 字符串加载到 Arti
我正在使用 RequestBuilder 读取静态 JSON 文件,并确认我在响应的 .getText() 方法中看到了预期的 JSON。我已经精简了我正在做的事情来尝试找出确切的问题。这就是我能做的
我试图了解如何使用 JSONutil 在 jquery 和 Coldfusion 之间序列化/反序列化 JSON。我无法使用 Coldfusion 7,因此无法在 cfc 中使用 returnform
模型 using System.Collections.Generic; using UnityEngine; [System.Serializable] public class GetPeople
这是我在 Unity 中发出的请求: UnityWebRequest request = UnityWebRequest.Put(baseUrl + "miniGame1s/", JsonUtilit
我是一名优秀的程序员,十分优秀!