构造Json字段

来源:互联网 发布:三月软件小组 编辑:程序博客网 时间:2024/03/29 13:04

构造Json字段

构造下面内容:

{    "name":"张三",    "age":23,    "birthday":"1994-01-01",    "school":"蓝翔",    "major":["理发","挖掘机"],    "married":false,    "car":null}

三种方法构造json字段

1.使用JSONObject构造Json

/** * 使用JSONObject构造Json * 特点:不会添加值为null类型的项 * {"name":"张三","age":23,"birthday":"1994-01-01","school":"蓝翔", * "major":["理发","挖掘机"],"married":false} * @return JSONObject */public static JSONObject createJsonWithJSONObject() {    JSONObject zhangsan = new JSONObject();    try {        zhangsan.put("name", "张三");        zhangsan.put("age", 23);        zhangsan.put("birthday", "1994-01-01");        zhangsan.put("school", "蓝翔");        JSONArray major = new JSONArray();        major.put("理发");        major.put("挖掘机");        zhangsan.put("major", major);        //也可以使用字符串数组        //zhangsan.put("major",new String[]{"理发","挖掘机"});        zhangsan.put("married", false);        //实际上值为null,不会添加该项        zhangsan.put("car", null);        Log.d(TAG, "createJsonWithJSONObject: " + zhangsan.toString());    } catch (JSONException e) {        e.printStackTrace();    }    return zhangsan;}

2.使用HashMap构造Json

/** * 使用HashMap构造Json * 特点:无序 * 调用:JSONObject(Map copyFrom) * {"married":false,"name":"张三","car":null,"age":23,"major":["理发","挖掘机"], * "birthday":"1994-01-01","school":"蓝翔"} * @return JSONObject */public static JSONObject createJsonWithHashMap() {    HashMap<String, Object> zhangsan = new HashMap<>();    zhangsan.put("name", "张三");    zhangsan.put("age", 23);    zhangsan.put("birthday", "1994-01-01");    zhangsan.put("school", "蓝翔");    zhangsan.put("major", new String[]{"理发", "挖掘机"});    zhangsan.put("married", false);    zhangsan.put("car", null);    //传入HashMap对象到JSONObject构造方法    JSONObject obj = new JSONObject(zhangsan);    Log.d(TAG, "createJsonWithHashMap: " + obj.toString());    return obj;}

3.使用Bean类构造Json

/** * 使用Bean类构造Json * 特点:可重用,需要注意bean类中toString()方法的定义 * 调用:JSONObject(String json) * {"name":"张三","age":23,"birthday":"1994-01-01","school":"蓝翔","major":["理发","挖掘机"], * "married":false,"car":"null"} * @return JSONObject */public static JSONObject createJsonWithBean() {    People zhangsan = new People();    zhangsan.setName("张三");    zhangsan.setAge(23);    zhangsan.setBirthday("1994-01-01");    zhangsan.setSchool("蓝翔");    List<String> majors = new ArrayList<>();    majors.add("理发");    majors.add("挖掘机");    zhangsan.setMajor(majors);    zhangsan.setMarried(false);    zhangsan.setCar(null);    //接下来有两种方法可选    //1.使用Gson,特点:无序,返回json串    Gson gson=new Gson();    String result = gson.toJson(zhangsan);    Log.d(TAG, "createJsonWithBean: result= "+result);    //2.使用JSONObject    JSONObject obj = null;    try {        obj = new JSONObject(zhangsan.toString());    } catch (JSONException e) {        e.printStackTrace();    }    Log.d(TAG, "createJsonWithBean: "+obj);    return obj;}

注意:如若要打印出的json有格式可以这样:

GsonBuilder gsonBuilder=new GsonBuilder();//配置Gson输出适合漂亮打印页面的Json。此选项仅影响Json序列化gsonBuilder.setPrettyPrinting();Gson gson=gsonBuilder.create();String result = gson.toJson(zhangsan);