如何从RESTful Web服务反序列化JSON响应?

时间:2014-01-24 15:56:55

标签: java objective-c json rest kvc

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

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

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

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

3 个答案:

答案 0 :(得分:1)

查看Jackson

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

答案 1 :(得分: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());
    }

}

答案 2 :(得分:1)

查看Google GSON,这是Google的编组/ UnMarshaling JSON到Java和Java到JSON的库。

您还可以在http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/

查找其教程