如何使用org.json将String值转换为java中的json对象

时间:2012-07-23 15:51:36

标签: json gwt

我正在尝试将JSON字符串值`{“名称:ganesh,性别:男性,年龄:22”})转换为使用jwt in gwt的键和值集,任何人都可以帮我提供一些想法。

2 个答案:

答案 0 :(得分:2)

由于您不想使用org.json,我想您需要在客户端转换JSON。如果是这种情况,则需要使用GWT的JSON库。通过将这些行添加到.gwt.xml文件中,可以将它们继承到GWT项目中:

<inherits name="com.google.gwt.json.JSON" />  
<inherits name="com.google.gwt.http.HTTP" />

您还需要将com.google.gwt.json个软件包导入到您的类文件中。

The getting started guide to using JSON in GWT can be found here.它还提供了解码JSON的示例。

答案 1 :(得分:2)

您的字符串必须是

形式
"{'name':'ganesh','sex':'male','age':'22'}"

或     '{ “名称”: “内甚”, “性别”: “男”, “年龄”: “22”}'

您可以使用以下方式之一...

  • 使用javascript eval。将eval嵌入JSNI

    public static native String eatString(String jstring) /*-{
      eval("var hello = " + jstring + ";");
      return hello;
    }-*/;
    
  • 将String作为脚本传递到JSP GWT托管文件中。这样,您只能执行一次 - 当GWT应用程序加载其托管文件时。您的JSP将为每次加载动态生成javascript。

    在GWT托管html文件中放置以下内容,在调用GWT模块的脚本标记之前。

    <script>
    var hello = {'name':'ganesh','sex':'male','age':'22'};
    </script>
    

    然后在你的GWT应用程序中,使用GWT Dictionary类来引用托管文件中声明的任何javascript对象。

  • 使用以下实用程序,特别是JsonRemoteScriptCall.java,将SLD-SOP javascript对象中的远程读取到GWT应用程序中。 http://code.google.com/p/synthfuljava/source/browse/trunk/gwt/jsElements/org/synthful/gwt/javascript/#javascript%2Fclient

    请注意 - SLD-SOP对象可能有危险。阅读二级域名,同源策略浏览器安全性。

  • 使用RestyGWT并假装服务器中的数据符合REST数据结构。但当然,已经为您完成了json.org和google JSON utils的使用。