0

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

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

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

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

4

3 回答 3

1

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

您还可以在http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/上查找它的教程

于 2014-01-24T16:21:45.230 回答
1

看看杰克逊

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

于 2014-01-24T15:59:21.827 回答
1

这是一个使用 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());
    }

}
于 2014-01-24T16:04:12.780 回答