先看数据格式:

0e1812982d98ef13348988488a79cb60.png

可以看到,在value中有双引号。主要对应的key是position 和interests两个部分。

发现position 是单个字符串格式。 interests是对应的json数组的格式。所以分两步解决。

1.解决position对应的问题。

String str=""; str中是有问题的json数据

String newstr="";

String flag1="\"position\":\""; //标记1: "position":" 引号也要留着

String flag2="\",\"interests\":"; //下一个标签的开头作为标记 ","interests":

int start=str.indexOf(flag1); //起始位置int end=str.indexOf(flag2); //结束位置while(start>0) {

String conent=str.substring(start+flag1.length(),end); //将内容切割出来,第一个参数加上flag1的长度是为了找到开始。

conent=conent.replace("\"", "'"); //替换双引号为 ’ ,也可替换为其他字符。newstr=newstr+str.substring(0,start)+flag1+conent+flag2; //将content之前的+conten+content后边的

str=str.substring(end+flag2.length(),str.length()); //将改好的部分从str中分出去

start=str.indexOf(flag1); //重新确定开始和结束

end=str.indexOf(flag2);

}

newstr=newstr+str; //加上最后的结尾,,newstr就是正确的数据

这就是解决过程,根据 position  的前后内容,把每个value切割出来,替换 " 之后在连接。这个问题解决了。

2.第二步就是解决intersts中的问题,因为这个是json数组形式,其中的数据格式为  " value1","value2","value3"

所以,这个中要用  ",   一起来确定位置。

按照1中过程分解出content就是 下边例子中 [  ] 的内容。

1b7fa2305e9ba86ea6bb731cc807e673.png

public staticString interst(String s) { //该方法传入的参数为content内容,下边的方法需要调用char[] temp =s.toCharArray(); //将内容转化为数组形式。int n = temp.length-1; //结尾肯定是 ” 所以需要分割出去int start=1; //找到起始位置,没错替换之后还要重新确定起始。起始就是每个双引号的后边for(int i=0;i

temp[j]='\'';

}

}

start=i+3;

}

}for(int j=start;j

temp[j]='\'';

}

}//System.out.println(temp);

return newString (temp);

}

public static String upexperts(String str) { //str为json有 ” 的json数据 ,

newstr="";

flag1="\"interests\":["; //标记1:

flag2="]}"; //标记2

start=str.indexOf(flag1);

end=str.indexOf(flag2);

while(start>0) {

String conent=str.substring(start+flag1.length(),end);

conent=interst(conent);  //调用上边的方法,将content内容处理,去掉 "

newstr=newstr+str.substring(0,start)+flag1+conent+flag2;

str=str.substring(end+flag2.length(),str.length());

start=str.indexOf(flag1);

end=str.indexOf(flag2);

}

newstr=newstr+str;

}

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐