我需要把一个下拉选的字符串转成一个对象,对象中包含有集合,而集合的泛型是以这个拉下选的key,value组成对象,也就是对象套集合,集合套对象
这是项目开发中遇到的问题,使用gson进行转换然后赋值集合,具体代码如下
定义一个字符串,格式如下
[{"label":"A","value":"属于"},{"label":"B","value":"不属于"},{"label":"C","value":"两个答案都不正确"}]
定义最外层对象
public class TestScheam { private List<LabelScheam> options; public List<LabelScheam> getOptions() { return options; } public void setOptions(List<LabelScheam> options) { this.options = options; } @Override public String toString() { return "TestScheam{" + "options=" + options + '}'; } }
定义内层对象
public class LabelScheam { String label; String value; public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } }
开始封装对象
String str = "[{\"label\":\"A\",\"value\":\"属于\"},{\"label\":\"B\",\"value\":\"不属于\"},{\"label\":\"C\",\"value\":\"两个答案都不正确\"}]"; List<LabelScheam> list = new ArrayList(); TestScheam scheam = new TestScheam();
转换str为集合并放入最外层集合中
Gson gson = new Gson(); scheam.setOptions(gson.fromJson(str,new TypeToken<List<LabelScheam>>(){}.getType()));//TypeToken的声明类型为protected,使用的话需要通过这种方式进行处理。
结果如下: