【问题标题】:Creating object to get expected Json创建对象以获取预期的 Json
【发布时间】:2009-11-25 07:42:02
【问题描述】:

我在 GWT 工作。目前我的要求很简单。我想要以下格式的 JSON:

{":question" : { ":id":"123", ":question_text":"some text", ":nodes":["123","111"]}}

我需要在 GWT 代码中创建一个对象,这样当我使用 jquery 的 json 插件来解析该对象时;我应该得到上面列出的 json。此 json 需要发送到远程服务。

目前我已经尝试使用为这些属性建模的 Java Hashmaps 和 Java 自定义对象,但它们似乎总是在生成的 JSON 中有元数据,我只是无法获得这种格式。

如果有人能建议我如何对这个数据对象进行建模以便我得到一个按预期解析的 JSON,那就太好了。

或者我可以用 Javascript 编写一个简单的自定义 JSON 解析器吗?我该怎么做?

干杯 -Priyank

【问题讨论】:

  • 你的问题很不清楚。你想做什么?您的 GWT 应用程序是否生成 JSON? JSON 是一种将对象序列化为字符串的协议,反之亦然。
  • 是的,确实很不清楚。如果您只需要 JSON,则将其写入字符串并将其传递给调用 jquery 的 javascript 本机代码。 GWT 对象将始终包含额外的东西,因为它们不仅仅是到可读 JSON 字符串的普通映射,而且所有成员和类无论如何都会被混淆。
  • 是的,我确实只需要一个 json,最后我确实以本机方法将其传回。最初,我只是在寻找如何确保在给定对象而不将元数据放入对象时获得准确的 JSON。也许code.google.com/p/gwt-jsonizer 这会奏效;但我从来没有认真尝试过。
  • 按键前的“:”是什么意思?为什么用“:question”而不是“question”?我认为这行不通(至少在 javascript 方面)...
  • @cmccilloh - 它有效,但您可能需要显式调用(例如)obj.get(":id") 而不是obj.id

标签: java jquery json gwt


【解决方案1】:

只是把它扔在那里,有一些非常好的和简单的 JSON Java 库。我最有经验的两个是:

两者(以及大多数其他 Java 的 JSON 库)的好处是它们可以将大多数原生 Java 对象类型编组为健全的 JSON 等价物——换句话说,它们可以轻松地将变量的内容添加到 JSON结构,变量是否是整数、长整数、字符串、布尔值等等。因此,使用 JSON-Lib,您可以这样构建您的示例:

int id = 123;
String questionText = "some text";
int[] nodes = new int[] { 123, 111 };

JSONObject question = new JSONObject();
question.put(":id", id);
question.put(":question text", questionText);
question.put(":nodes", nodes);
JSONObject json = new JSONObject();
json.put(":question", question);

String jsonString = json.toString();

【讨论】:

    猜你喜欢
    • 2016-05-14
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2018-10-31
    相关资源
    最近更新 更多