2009-11-25 45 views
0

我正在使用GWT。目前我的要求很简单。我要在以下格式的JSON:创建对象以获得预期Json

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

我需要建立在GWT代码的对象,这样当我使用jQuery的JSON插件来解析对象;我应该得到以上列出的JSON。这个json需要被发送到远程服务。

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

如果有人可以建议我如何去建模这个数据对象,这样我得到一个按预期解析的JSON,那将是非常棒的。

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

欢呼 -Priyank

+0

您的问题很不清楚。你想做什么?你的GWT应用程序是否生成JSON? JSON是将对象序列化为字符串的协议,反之亦然。 –

+1

的确很不清楚。如果您只需要JSON,然后将其写入字符串并将其传递给调用jQuery的JavaScript本机代码。 GWT对象将总是包含额外的东西,因为它们不仅仅是一个简单的映射到可读的JSON字符串,并且无论如何所有成员和类都会被混淆。 –

+0

是的,我确实只是需要一个JSON,最后我以本地方法传回。最初,我只是在寻找如何确保在给定一个没有将元数据放入对象的对象时获得精确的JSON。也许http://code.google.com/p/gwt-jsonizer/这会起作用;但我从来没有想过尝试它。 – Priyank

回答

2

只是把它扔在那里,但是也有一些相当不错的,简单的几个JSON Java库。这两个我有我的大部分有经验有:

的双方互惠(和大多数其他JSON库的Java)是他们处理编组最原生的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();