老夫需要在一个字符串中查找是否有某个值、
使用fastJson发现性能其实并不好
后来发现其实不需要将他反序列化成jsonobject或者类 我只需要在字符串里查找该值即可
所花费减少了很多倍
public class JSONStringUtil {
public static String getStringFromJsonByKey(String str,String key,String split){
int i = str.indexOf(key+split);
char s = split.charAt(0);//分割符
char t = ":".charAt(0);
char blank = " ".charAt(0);
boolean start = false;
int lastNum= 0;
if(i>=0){
i += key.length()+1;//转到索要查找的字符串后面
for(int j=i;j<str.length()-1;j++){//遍历一遍
char c = str.charAt(j);
if(start){
if(c==s){
lastNum=j;
break;
}
}else{
++i;
if(c==s){
start = true;
}
}
}
return str.substring(i,lastNum);
}
return null;
}
}
jsonstring程序运行时间: 10ms
fastjson 程序运行时间: 175ms
Process finished with exit code 0
也就17,18倍吧 哈
适用于传过来一个json字符串但是只是取一两个字符串值的场景
这里只有取字符串 没有取数字 需要的自己写吧