jsonObject

JSON就是一串字符串 只不过元素会使用特定的符号标注。

{"age":14;

"name":“lisi”

}这就是一个对象了

json数组   含有多个json对象的数组

 [{"age":14;

“name”:"lisi"},

{"age":17;

"name":"nono"

}]

JSONObject 就是把其他形式和json形式对象相互转化。

JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。

生成jsonObject的几种形式

1,new  JSONObject

JSONObject zhangsan = new JSONObject();
        try {
            //添加
            zhangsan.put("name", "张三");
            zhangsan.put("age", 18.4);
            zhangsan.put("birthday", "1900-20-03");
            zhangsan.put("majar", new String[] {"哈哈","嘿嘿"});
            zhangsan.put("null", null);
            zhangsan.put("house", false);
            System.out.println(zhangsan.toString());
        } catch (JSONException e) {
            e.printStackTrace();
        }

2.HashMap形式 也可以

     HashMap<String, Object> zhangsan = new HashMap<>();
        
        zhangsan.put("name", "张三");
        zhangsan.put("age", 18.4);
        zhangsan.put("birthday", "1900-20-03");
        zhangsan.put("majar", new String[] {"哈哈","嘿嘿"});
        zhangsan.put("null", null);
        zhangsan.put("house", false);
        System.out.println(new JSONObject(zhangsan).toString());

3.通过实体生成

        User zhangsan=new User();
        zhangsan.put("name", "张三");
        zhangsan.put("age", 18.4);
        zhangsan.put("birthday", "1900-20-03");
        zhangsan.put("majar", new String[] {"哈哈","嘿嘿"});
        zhangsan.put("null", null);
        zhangsan.put("house", false);
        System.out.println(new JSONObject(zhangsan));

解析jeson格式

 //读取json文件路径
        File file = new File(jsonTest.class.getResource("/zhangsan.json").getFile());
        try {
            //读取json内容
            String s = FileUtils.readFileToString(file);
            //转换json对象
            JSONObject jsonObject = new JSONObject(s);
            if(!jsonObject.isNull("name")){ //从文件读取JSON判断null
                System.out.println(jsonObject.getString("name"));
            }
            System.out.println(jsonObject.getString("birthday"));
            System.out.println(jsonObject.getBoolean("house"));
            System.out.println(jsonObject.getDouble("age"));
 
            JSONArray majar = jsonObject.getJSONArray("majar"); //遍历数组
            for(int i=0,lengths=majar.length();i<lengths;i++){
                String o = (String)majar.get(i);
                System.out.println(i+1+":"+o);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        }