从Java中的String关联数组中获取值

时间:2016-10-31 21:32:31

标签: java json string

我有这个字符串:

[{"id":1,"code":"number","field":"Customer Number","value":"123456"},{"id":2,"code":"customerName","field":"Customer Name","value":"John"}]

我想在java中获取这些值:

客户编号:123456

客户名称:John

我该怎么做?

谢谢你的一切。

温暖的问候。

2 个答案:

答案 0 :(得分:0)

解决方案使用杰克逊。需要有JACKSON的databind,core和annotation jar。确保所有3个罐子的版本相同。

为JSON创建类,如下所示:

public class Items {
    private int id;
    private String code;
    private String field;
    private String value;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getField() {
        return field;
    }
    public void setField(String field) {
        this.field = field;
    }
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
}

由于您拥有的数据是JSON数组,因此反序列化的方法如下:

String jsonString = "your Json array";
ObjectMapper mapper = new ObjectMapper();
List<Data> objList = mapper.readValue(jsonString, new TypeReference<List<Data>>(){});
for (Data obj : objList) {
     //code.
}

如果数据是一个简单的JSON对象,则反序列化将为:

String jsonString = "your JSON";
ObjectMapper mapper = new ObjectMapper();
Data obj = mapper.readValue(jsonString, Data.class);
System.out.println(obj.getId());

答案 1 :(得分:0)

您使用JsonArray,其中包含文档here

{{1}}