在做微信公众号开发时,调用接口返回一个如下形式的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;
}
这篇博客介绍了如何在Java中解析微信公众号接口返回的JSON字符串,并将其转换为List<Tag>类型的数组。首先创建了TagInfo和Tag类,接着通过JSONObject的toJavaObject方法将JSON字符串转换为TagInfo对象,最后使用JSONObject的parseArray方法或JSONArray的toJavaList方法将tags字段转换为Tag对象的列表。
2618

被折叠的 条评论
为什么被折叠?



