【问题标题】:How can i give json input in my web application?如何在我的 Web 应用程序中提供 json 输入?
【发布时间】:2011-06-14 12:34:56
【问题描述】:

我正在使用一个接受 json 对象、解析它并创建一个用户对象的 Web 应用程序。我想在 gson.fromJson(jsonData, User.class); 中给出这个 json 输入:

 {
   users:[{
   name: "Jack",
   email: "email1",
   friends:[{
       name: "name2",
       email: "email2",

    }]
 }]
} 

我应该怎么做才能用这个 json 对象代替 jsonData。我正在使用谷歌应用引擎。

提前致谢。

【问题讨论】:

    标签: java eclipse json google-app-engine web-applications


    【解决方案1】:

    如果您使用 Gson,请阅读 doc here。 作为jsonData,您可以使用您的json 或Reader 传递字符串,从而流式传输您的json 数据。

    UPD:在您的情况下,您需要反序列化数组,因此将其用作

    String jsonData = "{"
       "users:[{ " +
       "name: 'Jack', " +
       "email: 'email1', " +
       "friends:[{ " +
       "    name: 'name2', " +
       "    email: 'email2', " +
       "  }] " +
       "}] " +
    "}";
    User[] users = gson.fromJson(jsonData, User[].class); 
    

    GSon 使用反射来设置属性,因此请确保您对 json 中的所有属性都有设置器,例如 User.setNameUser.setEmailUser.setFriends、..

    【讨论】:

    • 对不起。我以前读过,但我无法理解。我只是想将该 json 语法作为输入。如果你能写几行代码来展示我如何做到这一点,我将非常感激。谢谢
    • 我用代码示例更新了答案。 GSon 使用反射来设置属性,因此请确保您有 json 中所有属性的设置器,例如 setNamesetEmailsetFriends、..
    • 字符串文字没有被“正确关闭。这是错误
    • 我有所有的 setter 和 getter。由于此错误而无法生成字符串:字符串文字没有被“正确关闭。这就是为什么我要询问如何创建字符串并用它代替 jsonData
    • 收到此错误:HTTP ERROR 500 访问 /showuser 时出现问题。原因:com/google/gson/Gson 引起:java.lang.NoClassDefFoundError: com/google/gson/Gson 有什么想法吗?我已经导入了所有的 gson 库。
    猜你喜欢
    • 2014-07-07
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    相关资源
    最近更新 更多