JSONObject只是一种数据结构,可以理解为JSON格式的数据结构(key-value 结构),可以使用put方法给json对象添加元素。JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。
//Java对象转换成String类型的JSON字符串
JSONObject.toJSONString(Java对象)
//String类型的JSON字符串转换成Java对象
JSONObject.toJavaObject(JSON字符串,Java对象.class)
String类型字符串转json格式
JSON.parseObject(str)
在开发中,经常是前端发送一串数据过来之后,是通过一个参数带着一串值过来,这一串值是String 格式的,但是里面的内容其实是json格式类型的,所以拿到值之后就要将该值转化成json格式,然后获取里面指定的key就可以拿到该值了。
JSONObject jsonObject = JSON.parseObject(tt);
String imei= (String) jsonObject.get("imei");
通过这种方法就可以提取前端传过来的数据了
可以通过request.getparam拿到请求参数
’
代表一个单引号(撇号)字符
例如a=1
‘a’则为’1’
"代表一个双引号字符
“a"为"1”
//Json字符串转换成JSONObject(JSON对象)对象
相当于JSONObject JsonObject= new JSONObject()
JsonObject.put("key",value)
jsonboject输出的结果
例如json格式: {"id":"1","age":20,"name":"张三"}
//JSON字符串转换成JSON对象
JSONObject jsonObject1 = JSONObject.parseObject(stuString);
System.out.println(jsonObject1);
JSONObject.parseObject(JSON字符串)
//JSON字符串转换成Java对象
JSONObject.parseObject(JSON字符串,Java对象.class)
JSONOBject
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());
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();
}
Student student = new Student();//java对象
student.setId(1);
student.setAge("20");
student.setName("张三");
//对象生成json格式
System.out.println(JSON.toJSON(student));
JsonObject对象
JSONObject JsonObject= new JSONObject()
//JSON字符串转换成Java对象
JSONObject.parseObject(JSON字符串,Java对象.class)
User user= JSONObject.parseObject(t, User.class);
User(id=1, name=zhang, age=2, bir=null)
json格式:{"id":"1","age":20,"name":"张三"}
Stirng类型的json字符串=json字符串:
"{\"username\":\"宋发元\",\"password\":\"123456\",\"age\":\"24\"}"
//Java对象转换成String类型的JSON字符串
User user=new User();
user.setAge(18);
user.setId("2");
user.setName("zhangsan");
String string = JSONObject.toJSONString(user);
Object o = JSONObject.toJSON(user);
String string1 = o.toString();
System.out.println(string1);
System.out.println(o);
System.out.println(string);
{"name":"zhangsan","id":"2","age":18}
{"name":"zhangsan","id":"2","age":18}
{"age":18,"id":"2","name":"zhangsan"}
从这里可以看出输出的结果都一样,只是类型不同
public static void main(String[] args) {
//创建ArrayList集合的对象
List<User> persons=new ArrayList<User>();
persons.add(new User("1","张三",18,new Date()));
persons.add(new User("3","李久",24,new Date()));
persons.add(new User("5","王五",45,new Date()));
persons.add(new User("6","王磊",23,new Date()));
System.out.println(persons);
System.out.println("------------------------");
System.out.println("------------------------");
System.out.println(persons.get(0));输出结果是User(id=1, name=张三, age=18, bir=Sat Oct 23 22:15:04 CST 2021)
System.out.println(persons.size());//输出的结果是4
for(int i=0;i<persons.size();i++){
//persion.get()list集合对象.get方法里面传的索引值
System.out.println(persons.get(i));
}
如果直接打印persons是个数组
[User(id=1, name=张三, age=18, bir=Sat Oct 23 22:08:38 CST 2021), User(id=3, name=李久, age=24, bir=Sat Oct 23 22:08:38 CST 2021), User(id=5, name=王五, age=45, bir=Sat Oct 23 22:08:38 CST 2021), User(id=6, name=王磊, age=23, bir=Sat Oct 23 22:08:38 CST 2021)]
遍历list集合
User(id=1, name=张三, age=18, bir=Sat Oct 23 22:10:13 CST 2021)
User(id=3, name=李久, age=24, bir=Sat Oct 23 22:10:13 CST 2021)
User(id=5, name=王五, age=45, bir=Sat Oct 23 22:10:13 CST 2021)
User(id=6, name=王磊, age=23, bir=Sat Oct 23 22:10:13 CST 2021)
}
User(id=1, name=张三, age=18, bir=Sat Oct 23 22:15:04 CST 2021)
4
public static void main(String[] args) {
//创建ArrayList集合的对象
List<Person> persons=new ArrayList<Person>();
persons.add(new Person("张三", 23, "男"));
persons.add(new Person("李四", 31, "女"));
persons.add(new Person("王五", 22, "男"));
persons.add(new Person("赵六", 27, "女"));
//输出集合中对象的姓名
for(Person per:persons){
System.out.println(per.getName());
}
}
张三
李四
王五
赵六
HashMap<String,String> hashMap=new HashMap<>();
hashMap.put("1",new User("1", "张三", 18, new Date()));
hashMap.put("2",new User("2", "张1三", 23, new Date()));
hashMap.put("3",new User("3", "张2三", 45, new Date()));
hashMap.put("4",new User("4", "张3三", 123, new Date()));
hashMap.put("5",new User("7", "张4三", 52, new Date()));
System.out.println(hashMap);
values():方法是获取集合中的所有的值----没有键,没有对应关系
KeySet():
将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。 keySet():迭代后只能通过get()取key
for (String s:hashMap.keySet()){
System.out.println(s);//得到的和key值
System.out.println(hashMap.get(s));//得到的是value
}
}
输出结果是集合
{1=User(id=1, name=张三, age=18, bir=Sun Oct 24 09:22:44 CST 2021), 2=User(id=2, name=张1三, age=23, bir=Sun Oct 24 09:22:44 CST 2021), 3=User(id=3, name=张2三, age=45, bir=Sun Oct 24 09:22:44 CST 2021), 4=User(id=4, name=张3三, age=123, bir=Sun Oct 24 09:22:44 CST 2021), 5=User(id=7, name=张4三, age=52, bir=Sun Oct 24 09:22:44 CST 2021)}
遍历结合的结果是
1
User(id=1, name=张三, age=18, bir=Sun Oct 24 09:28:52 CST 2021)
2
User(id=2, name=张1三, age=23, bir=Sun Oct 24 09:28:52 CST 2021)
3
User(id=3, name=张2三, age=45, bir=Sun Oct 24 09:28:52 CST 2021)
4
User(id=4, name=张3三, age=123, bir=Sun Oct 24 09:28:52 CST 2021)
5
User(id=7, name=张4三, age=52, bir=Sun Oct 24 09:28:52 CST 2021)
版权声明:本文为m0_47944994原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。