JSONObject的使用以及一些基础总结防止忘记

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版权协议,转载请附上原文出处链接和本声明。