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.parseObject(json2,Student.class);
大概意思就是: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中又有“”时,需要使用\”来把中间的“”的特殊含义去掉。变成普通字符。