JSONObject是一种数据结构,可以理解为JSON格式的数据结构,即“key-value”结构,其格式为“{"key1":value1,"key2",value2....}”;JSONObject添加元素可以使用put和get方法。
本教程操作环境:windows7系统、java8版、DELL G3电脑。
JSONObject是一种数据结构,可以理解为JSON格式的数据结构(key-value 结构),可以使用put方法给json对象添加元素。JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。
JsonObject的格式:
{"key1":value1,"key2",value2....}
key
必须是字符串。
jsonobject作用是什么?
JsonObject 就是常说的 json。是一种重要的数据传输对象。
因为ajax请求不刷新页面,但配合js可以实现局部刷新,因此json常常被用来作为异步请求的返回对象使用。
通过response.getWriter()获取PrintWriter pw,然后pw.print(json)。如果没有设置response.setContentType("application/json; charset=utf-8"); 则需要自己再js中进行解析。
JSONObject添加元素可以使用put(key,value)方法和调用元素方法get(key),这两种方法大家可以任选一种,另外JsonObject是一种重要的数据传输对象,是实际工作中是必不可少的。
1、实例化一个JSONObject 对象,用put() 方法将数据写入。
JSONObject obj = new JSONObject(); obj.put(key, value);
2、使用HashMap构建
实际上即先创建好一个 HashMap 对象并且将数据打包进去,而后在创建 JSONObject 时将其作为一个参数传进去。
Map<String, Object> data = new HashMap<String, Object>(); data.put("name", "John"); data.put("sex", "male"); data.put("age", 22); data.put("is_student", true); data.put("hobbies", new String[] {"hiking", "swimming"}); JSONObject obj = new JSONObject(data); // 或是下面这种写法,将 java 对象转换为 json 对象 JSONObject obj = JSONObject.fromObject(data);
3、使用JavaBean构建
这种方法在实际中更加常用。
创建 javaBean:
public class PersonInfo { private String name; private String sex; private int age; private boolean isStudent; private String[] hobbies;
构建 json:
PersonInfo info = new PersonInfo(); info.setName("John"); info.setSex("male"); info.setAge(22); info.setStudent(true); info.setHobbies(new String[] {"hiking", "swimming"}); JSONObject obj = new JSONObject(info); // 或是下面这种写法,将 java 对象转换为 json 对象 JSONObject obj = JSONObject.fromObject(data);
注意: JavaBean一定要有 getter 方法,否则会无法访问存储的数据。
解析 json 主要是基本类型如 Number、boolean 等,与数组 Array。
基本类型的解析直接调用 JSONObject 对象的 getXxx(key) 方法,如果获取字符串则 getString(key),布尔值则 getBoolean(key)。
数组的解析需要通过 JSONObject 对象的 getJSONArray(key) 方法获取到一个 JSONArray 对象,再调用 JSONArray 对象的 get(i) 方法获取数组元素,i 为索引值。
1、只包含一个对象的 json 字符串解析
//将得到json数据转换为一个json对象 JSONObject jsonObject = new JSONObject(data); //获取"persons"的json对象 jsonObject = jsonObject.getJSONObject("persons"); //通过相应的get方法,获取相应的属性 int id = jsonObject.getInt("id"); String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); //将获取到的数据放到一个Person对象中 Person person = new Person(id, name, age);
2、含有多个对象的 json 字符串
List<Person> list = new ArrayList<>(); //将得到json数据转换为一个json对象 JSONObject jsonObject = new JSONObject(data); //获取"persons"的json对象,并将其转换为一个json数组 JSONArray array = jsonObject.getJSONArray("persons"); //通过循环获取数据,并放入list集合中 for (int i = 0;i<array.length();i++){ int id = array.getJSONObject(i).getInt("id"); String name = array.getJSONObject(i).getString("name"); int age = array.getJSONObject(i).getInt("age"); Person person = new Person(id, name, age); list.add(person); } return list;
以上是JsonObject是什么的详细内容。更多信息请关注PHP中文网其他相关文章!