json数据
这里附上一个检查json数据格式是否正确的网站
三种解析方式android自带解析,gson解析,fastjson解析
1、android自带解析
json_btn.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { string s = getstring(); log.d("txt",s); list<city> list = new arraylist<city>(); try { jsonarray obj = new jsonarray(s); for(int i=0;i<obj.length();i++){ jsonobject jsonobj = (jsonobject)obj.get(i); city city = new city(); city.setcode(jsonobj.getstring("code")); city.setsheng(jsonobj.optstring("sheng")); city.setdi(jsonobj.optstring("di")); city.setxian(jsonobj.optstring("xian")); city.setname(jsonobj.optstring("name")); city.setlevel(jsonobj.optint("level")); log.d("txt",city.tostring()); textview.append(city.tostring()); } } catch (jsonexception e) { e.printstacktrace(); } } });
先获取json数组,在解析jsonobject。
2、gson解析
gson_btn.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { string s = getstring(); jsonparser parser = new jsonparser(); jsonarray jsonarray = parser.parse(s).getasjsonarray(); gson gson = new gson(); for (jsonelement obj:jsonarray){ city city = gson.fromjson(obj,city.class); log.d("txt", city.tostring()); textview.append(city.tostring()); } } });
先获取json数组,再解析jsonobject。
3、fastjson
fastjson_btn.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { string s = getstring(); log.d("txt",s); list<city> lists = json.parsearray(s,city.class); for(city city:lists){ textview.append(city.tostring()); log.d("txt",city.tostring()); } } });
直接获取jsonarray解析list<bean>。
public static final object parse(string text); // 把json文本parse为jsonobject或者jsonarray public static final jsonobject parseobject(string text); // 把json文本parse成jsonobject public static final <t> t parseobject(string text, class<t> clazz); // 把json文本parse为javabean public static final jsonarray parsearray(string text); // 把json文本parse成jsonarray public static final <t> list<t> parsearray(string text, class<t> clazz); //把json文本parse成javabean集合 public static final string tojsonstring(object object); // 将javabean序列化为json文本 public static final string tojsonstring(object object, boolean prettyformat); // 将javabean序列化为带格式的json文本
public static final object tojson(object javaobject); 将javabean转换为jsonobject或者jsonarray(和上面方法的区别是返回值是不一样的)
三种解析方法,个人感觉fastjson使用起来还是很方便的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问, 点击进行留言回复!!
Android SDK Manager 不知为什么突然打不开了?看这里
监听Android系统发出的插入SD卡并且已正确安装(识别)时发出的广播
RecyclerView三种常用效果的实现方法-android-kotlin
Android Studio app启动错误 Error running :Default Activity not found
网友评论