扣丁学堂——Json解析
2015-12-27 17:35
609 查看
一丶代码见本文
二丶课程讲解
二丶课程讲解
public class XMLparse extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_xmlparse); } /** * json 解析 * * @param v */ public void jsonRead(View v) { ArrayList list = jsonread();//json解析 for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i)); } } private ArrayList jsonread() { //json数据 String json = "{\"user\": [{\"firstname\": \"ma\", \"lastname\": \"we\", \"name\": \"mail\"}, {\"firstname\": \"zhang\", \"lastname\": \"bin\", \"name\": \"janbin\"}] } }"; ArrayList<ps> pslist = new ArrayList<ps>(); JsonReader jsonReader = new JsonReader(new StringReader(json)); try { jsonReader.beginArray();//开始解析数组 while (jsonReader.hasNext()) { ps p = new ps();//创建对象 jsonReader.beginObject(); while (jsonReader.hasNext()) {//开始解析对象 String name = jsonReader.nextName(); if ("firstname".equals(name)) { p.firstname = jsonReader.nextString(); } else if ("lastname".equals(name)) { p.lastname = jsonReader.nextString(); } else if ("name".equals(name)) { p.name = jsonReader.nextName(); } } jsonReader.endObject();//结束对象的解析 pslist.add(p); } jsonReader.endArray();//结束数据的解析 } catch (IOException e) { e.printStackTrace(); } return pslist; } /** * 生成json 数据 * * @param v */ public void createJSON(View v) { //数据对象 ArrayList<Person> list = new ArrayList<>(); Person p1 = new Person(); p1.setName("zhang"); p1.setId(1); p1.setAddress("北京"); p1.setAge(23); p1.setTel("123456789"); p1.setSex("男"); Person p2 = new Person(); p2.setName("wei"); p2.setId(2); p2.setAddress("上海"); p2.setAge(25); p2.setTel("9874561230"); p2.setSex("女"); list.add(p1); list.add(p2); //存放json数据 JSONObject json = new JSONObject(); //存入json 对象 JSONArray array = new JSONArray(); try { //将数组中的对象 生成json数据 for (int i = 0; i < list.size(); i++) { Person p = list.get(i); JSONObject obj = new JSONObject(); obj.put("name", p.getName()); obj.put("id", p.getId()); obj.put("age", p.getAge()); obj.put("sex", p.getSex()); obj.put("tel", p.getTel()); obj.put("address", p.getAddress()); array.put(obj);//将对象存入数组中 } json.put("user", array); } catch (JSONException e) { e.printStackTrace(); } System.out.print(json.toString()); } /*** * 第三方工具 生成json Gson * * @param v */ public void Gjson(View v) { //数据对象 ArrayList<Person> list = new ArrayList<>(); Person p1 = new Person(); p1.setName("zhang"); p1.setId(1); p1.setAddress("北京"); p1.setAge(23); p1.setTel("123456789"); p1.setSex("男"); Person p2 = new Person(); p2.setName("wei"); p2.setId(2); p2.setAddress("上海"); p2.setAge(25); p2.setTel("9874561230"); p2.setSex("女"); list.add(p1); list.add(p2); Gson gson = new Gson(); Type type = new TypeToken<ArrayList<Person>>() {}.getType(); gson.toJson(list, type); System.out.print(gson.toString()); } /*** * 第三方工具 解析json Gson * * @param v */ public void GjsonParse(View v) { String json = "{\"firstname\": \"ma\", \"lastname\": \"we\", \"name\": \"mail\"}, {\"firstname\": \"zhang\", \"lastname\": \"bin\", \"name\": \"janbin\"}"; Type type = new TypeToken<ArrayList<ps>>() { }.getType(); Gson gson = new Gson(); ArrayList<ps> list = gson.fromJson(json, type); for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i)); } } }
相关文章推荐
- javascript-工厂模式创建
- jmeter 与 json
- web项目中界面(jsp或者js)之间参数的传递
- JFinal+FullCallender.js开发终极排班管理系统
- js事件3-事件对象
- js事件3-事件对象
- JavaScript 使用Document记录cookie
- js里slice,substr和substring的区别
- JS跨域
- 输入框提示文字js
- JSP学习总结
- js判断对象类型
- javascript编码与解码
- javascript基础编程の变量、对象、数据类型及函数
- js入门的心结
- js执行顺序
- JavaScript浏览器对象
- chrome扩展程序开发之在目标页面运行自己的JS
- JS 触发事件大全
- js事件2-事件兼容问题