作为一名java初学者,分享一道项目中遇到的小问题,
还请大佬们勿喷,虚心求教!
题目:将以下字符串保存为json字符串
a="access_token=987b304ae3f44d50f98267f36a9281ed14b39056a11acf4016b51baea37f5d4a&expires=-1965257896";
思路:
1:将参数以&,=分割开来,分割开来保存
2:一组一组将数据放入map中
3将map转为json字符粗即可
代码示例;
JSON.toJSONString();
@Test
public void test01(){
String a="access_token=987b304ae3f44d50f98267f36a9281ed14b39056a11acf4016b51baea37f5d4a&expires=-1965257896";
//截取
String b = a.substring(0, a.indexOf("&"));
String c=a.substring(b.length()+1);
//截取=
String d = b.substring(0, a.indexOf("="));
String e=b.substring(d.length()+1, b.length());
String f = c.substring(0, c.indexOf("="));
String g=c.substring(f.length()+1, c.length());
Map<String,Object> map=new HashMap();
map.put(d,e);
map.put(f,g);
System.out.println(map);
//map转为json字符串
String body = JSON.toJSONString(map);
System.out.println("body字符串="+body);
}
那么问题来了,万一你想要的是json对象尼?不要急,这样就行!
JSONObject.fromObject();
@Test
public void test01(){
String a="access_token=987b304ae3f44d50f98267f36a9281ed14b39056a11acf4016b51baea37f5d4a&expires=-1965257896";
//截取
String b = a.substring(0, a.indexOf("&"));
String c=a.substring(b.length()+1);
//截取=
String d = b.substring(0, a.indexOf("="));
String e=b.substring(d.length()+1, b.length());
String f = c.substring(0, c.indexOf("="));
String g=c.substring(f.length()+1, c.length());
Map<String,Object> map=new HashMap();
map.put(d,e);
map.put(f,g);
System.out.println(map);
//map转为json对象
JSONObject jsonObject = JSONObject.fromObject(map);
System.out.println("body对象="+body);
}
延升一下:万一我想把json保存为java实体类尼,我不要json字符粗,不要对象(我还是要的)。
在原有的基础上加result = JSON.parseObject(body, User.class);
//先new一个实体类
Userresult = new User();
//将body字符串保存为实体类中
result = JSON.parseObject(body, User.class);
这样就可以将body的json字符串保存至User。class实体类当中!
总结:先对着自己想要的参数,拆分分开保存,put到map中,再将map转为json字符串,如有需要可再保存到实体类中。
PS:求各位大佬轻点喷,我知道方法写的很差,所以更需要你们的指导与建议,谢谢大家啦!