在做微信公众号开发时,调用接口返回一个如下形式的json字符串:
由于后续需要用到返回值,于是需要对这个json字符串进行解析转换
现在将这个json字符串转换成一个list类型的数组
首先创建一个类:
public class TagInfo { private Object tags; public Object getTags() { return tags; } public void setTags(Object tags) { this.tags= tags; } }
然后为里面的list数组创建Tag类
public class Tag{ long id; String name; long count; //此处省略get、set方法 }
然后进行转换
public static List<Tag> getAllTags() { String jsonTagInfo = tagInfo;//tagInfo就是上面需要转换的json字符串 JSONObject jsonObject; List<Tag> tagList = new ArrayList<>();//用来存放由json字符串转换的list数组 try{ //先将json字符串转换成jsonObject对象 jsonObject = new JSONObject(JSON.parseObject(jsonTagInfo)); //将转换后的jsonObject对象转换成TagInfo对象 TagInfo tagInfo = (TagInfo) JSONObject.toJavaObject(jsonObject,TagInfo.class); //将tagInfo中的jsonObject数组转换成list对象 方法1 tagList = JSONObject.parseArray(tagInfo.getTags().toString(), Tag.class);
//将tagInfo中的jsonObject数组转换成list对象 方法2 tagList = ((JSONArray)tagInfo.getTags()).toJavaList(Tag.class); } catch (JSONException e) { throw new RuntimeException(e.getMessage(), e); } return tagList; }