【问题标题】:How to deserialize a JSON response from a RESTful webservice?如何反序列化来自 RESTful Web 服务的 JSON 响应?
【发布时间】:2014-01-24 15:56:55
【问题描述】:

我正在尝试实现一个简单的命令行 Java 应用程序,该应用程序从 RESTful Web 服务请求一些资源。有没有办法自动将 JSON 响应反序列化到我的模型类中?

在 Objective-C 中有 Key-Value-Coding 允许您通过字符串表示来创建对象、访问变量和方法。这可用于将 XML 或 JSON 文档自动反序列化为对象,这是由一些第三方库完成的,例如 RestKit。

Java 有类似的东西吗?我知道我可以使用 JSON 解析器来获取文档的数组和映射表示,然后自己创建模型对象,但我想知道这是否可以自动化?

我昨天整晚都在寻找库、教程和用户指南。他们都在解释如何构建一个 RESTful web 服务,或者如果它是一个客户端应用程序,他们所做的只是下载一些 JSON 并将其打印到系统中。

【问题讨论】:

  • 这是一个关于使用 Jackson 反序列化 JSON 字符串的示例:mkyong.com/java/how-to-convert-java-object-to-from-json-jackson。如果您使用其他框架,例如 Spring 或 Mule(或其他可以自动为您完成的框架),您可以将其自动化。否则,您应该详细说明您的确切问题。
  • 另一个流行的是GSON,还有many more
  • 很多 Java 人员甚至不知道如何“原始”处理 JSON —— 他们只知道这些框架。

标签: java objective-c json rest kvc


【解决方案1】:

查看Jackson

这样,您可以创建一个“匹配”您的 json 数据结构的类,Jackson 会自动为您实例化并填充该类。然后,您已经与 Java 应用程序的其余部分集成。

【讨论】:

    【解决方案2】:

    查看Google GSON,它是 Google 的库,用于将 JSON 编组/取消编组到 Java 和 Java 到 JSON。

    你也可以在http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/寻找它的教程

    【讨论】:

      【解决方案3】:

      这里是一个例子,使用 XStream 库:(http://x-stream.github.io/json-tutorial.html)

      package com.thoughtworks.xstream.json.test;
      
      import com.thoughtworks.xstream.XStream;
      import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;
      
      public class ReadTest {
      
          public static void main(String[] args) {
              String json = "{\"product\":{\"name\":\"Banana\",\"id\":123"
                  + ",\"price\":23.0}}";
      
              XStream xstream = new XStream(new JettisonMappedXmlDriver());
              xstream.alias("product", Product.class);
              Product product = (Product)xstream.fromXML(json);
              System.out.println(product.getName());
          }
      
      }
      

      【讨论】:

        猜你喜欢
        • 2015-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-25
        • 2013-06-23
        • 2012-08-11
        相关资源
        最近更新 更多