将content内容处理
先看数据格局:
可以看到,在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就是 下边例子中 [ ] 的内容。
public static String interst(String s) { //该要领传入的参数为content内容,下边的要领需要挪用
char[] temp = s.toCharArray();
//将内容转化为数组形式。
int n = temp.length-1;
//结尾必定是 ” 所以需要支解出去
int start=1;
//找到起始位置,没错替换之后还要从头确定起始。起始就是每个双引号的后边
for(int i=0;i<n-1;i++) {
if(temp[i] == ‘"‘ && temp[i + 1] == ‘,‘) {
for(int j=start;j<i;j++) { //替换内容
if(temp[j]==‘"‘) {
temp[j]=‘\‘‘;
}
}
start=i+3;
}
}
for(int j=start;j<n;j++) {
if(temp[j]==‘\"‘) {
temp[j]=‘\‘‘;
}
}
// System.out.println(temp);
return new String (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;
json数据中嵌套 ”(双引号) 导致格局报错的问题,措置惩罚惩罚方法
标签:
原文地点:https://www.cnblogs.com/wys-373/p/12287693.html
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30252.html