您的位置:首页 > Web前端 > JavaScript

扣丁学堂——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));
        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: