如何在java中将字符串名称定义为类

时间:2013-06-17 07:29:14

标签: jackson

我在Android应用程序中使用Jackson解析器进行JSON解析。 JSON数据采用以下形式

data: {
train_number: "12951",
chart_prepared: false,
class: "2A"
}

如何在Java中使用 class 名称解析属性? 求你帮帮我。

1 个答案:

答案 0 :(得分:1)

一开始 - 您的JSON无效。它应该是这样的:

{"train_number":1,"chart_prepared":false,"class":"2A"}

您可以使用@JsonProperty注释更改默认名称属性。 您的POJO类看起来应该是这样的:

class Data {

    private int train_number;
    private boolean chart_prepared;

    @JsonProperty(value = "class")
    private String clazz;

    ...
}

现在您可以构建简单的测试方法:

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JacksonProgram {

    public static void main(String[] args) throws Exception {
        Data data = new Data();
        data.setTrain_number(1);
        data.setClazz("2A");

        ObjectMapper objectMapper = new ObjectMapper();
        String json = objectMapper.writeValueAsString(data);
        System.out.println(json);

        System.out.println(objectMapper.readValue(json, Data.class));
    }
}

以上程序打印:

{"train_number":1,"chart_prepared":false,"class":"2A"}
Data [train_number=1, chart_prepared=false, clazz=2A]