JSON,JSONArray以及转换Java Bean

梁丘洲
2023-12-01

JSON,JSONArray以及转换Java Bean

class JsonstudyApplicationTests {

    @Test
    void JSONTest1() throws JSONException {
        /*JSON和JSONArray样式
        *JSONObject,JSONArray是JSON的两个子类。
        * JSONObject相当于Map<String, Object>,
        * JSONArray相当于List<Object>。
        * */
        JSONObject json=new JSONObject();
        json.put("爱人","syq");
        json.put("夫人","syq");
        json.put("恋人","syq");

        System.out.println("JSON输出的样式为:"+ json);   //{"夫人":"syq","恋人":"syq","爱人":"syq"}

        System.out.println(json.get("恋人"));  //syq

        JSONArray jsonArray=new JSONArray();
        jsonArray.put(0,"王顺");
        jsonArray.put(1,"吴俊杰");
        jsonArray.put(2,"bqq");
        System.out.println(jsonArray); //["王顺","吴俊杰","bqq"]


        json.put("students",jsonArray);
        System.out.println(json);
        //{"夫人":"syq","恋人":"syq","爱人":"syq","students":["王顺","吴俊杰","bqq"]}
    }

    @Test
    void TransferToJson(){
        /*类转化为json*/
        Student stu=new Student("王顺","爱上了syq");
        //使用fastjson将类转化为json,直接使用toJSONString方法就行。
        String s = JSON.toJSONString(stu);
        System.out.println(s);  //{"password":"爱上了syq","username":"王顺"}

        //toJSON和toJSONString方法就是一个返回String,一个返回Object类型
        Object o = JSON.toJSON(stu);
        System.out.println(o);  //{"password":"爱上了syq","username":"王顺"}

        /*map转化为json*/
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("key1", "One");
        map.put("key2", "Two");
        String mapJson = JSON.toJSONString(map);
        System.out.println(mapJson);  //{"key1":"One","key2":"Two"}
    }

    @Test
    void JSONTransforOther(){
        /*JSON转化为其他类型*/
        String json2 = "{\"username\":\"李四\", \"password\":\"123\"}";
        Student student = JSON.parseObject(json2, Student.class);
        System.out.println(student.toString());  //Student(username=李四, password=123)


    }

}

介绍

  • JSONObject,JSONArray是JSON的两个子类。
    JSONObject相当于Map<String, Object>,
    JSONArray相当于List<Object>。
    
    
  • xxxxx转化为JSON方法:

JSON.toJSONString(stu)
  • JSON转化为XXXXXXX:
JSON.parseObject(json2,Student.class);
  • 另外提一点:像这种的"{“username”:“李四”, “password”:“123”}"原因:

大概意思就是:Java中的双引号都是成对出现的,而且最后是不展示出来的,但是这里我们是需要展示出来的,所以就需要进行转义,在每个需要展示出来的双引号前面加个反斜杠就行。

String json2 = "{\"username\":\"李四\", \"password\":\"123\"}";
        Student student = JSON.parseObject(json2, Student.class);
        System.out.println(student.toString());

我们都知道“\”可以与字母组合,具有特殊含义,如下:
  \’    单引号
\”    双引号
  \    反斜杠
 \0    空(字符串最后一个字符,默认为空)
  \a    警告
  \b    退格
  \f    换页
  \n 换行
  \r    回车
\t    水平制表符
\v 垂直制表符
其中:\’    单引号 \”    双引号,反斜杠称为转义字符,也就是说去掉”\”后面字符本来的含义,只做字符使用。
比如:实际应用中, “ ” 都是成对出现,如果你想打印 一个 ” ,就可以使用:
printf ( ” \” “);//打印结果为:” ,其中 \ 不显示。
printf(“开始聊天吧\r( \”QUIT\”断开连接) \n”);
//打印结果:开始聊天吧( “QUIT”断开连接)。

还有,就是传参时,如果参数里需要有“xxxxxxxxx”,xxxxxxxxx中又有“”时,需要使用\”来把中间的“”的特殊含义去掉。变成普通字符。

 类似资料: