我从服务器获取此字符串,我需要先删除“
得到这个
{ “TestServiceResult”: “[{\” screen_refresh_interval \ “:4,\” station_list_last_update \ “:\” UPDATE4 \ “},{\” screen_refresh_interval \ “:4,\” station_list_last_update \ “:\” UPDATE4 \ “},{\” screen_refresh_interval \ “:4,\” station_list_last_update \ “:\” UPDATE4 \ “},{\” screen_refresh_interval \ “:4,\” station_list_last_update \ “:\” UPDATE4 \“},{\ “screen_refresh_interval \”:4,\ “station_list_last_update \”:\ “UPDATE4 \”}]“}
输出
{ “TestServiceResult”:[{\ “screen_refresh_interval \”:4,\ “station_list_last_update \”:\ “UPDATE4 \”},{\ “screen_refresh_interval \”:4,\ “station_list_last_update \”:\“UPDATE4 \ “},{\” screen_refresh_interval \ “:4,\” station_list_last_update \ “:\” UPDATE4 \ “},{\” screen_refresh_interval \ “:4,\” station_list_last_update \ “:\” UPDATE4 \ “},{\” screen_refresh_interval \ “:4,\” station_list_last_update \ “:\” UPDATE4 \“}]}
int index =test.indexOf('[');
int index2 =test.indexOf(']');
答案 0 :(得分:1)
我需要删除第一个和最后一个“
不,不。你所拥有的是一个JSON对象,它包含一个名为TestServiceResult
的属性,其值是一个本身恰好是有效JSON的字符串。您实际需要做的是提取该字符串并将其传递回JSON解析器,以便您获得一个数组,然后创建一个新的JSON对象,其属性为TestServiceResult
,其值为该数组,并序列化此新对象回到另一个字符串。
简单地剥离第一个和最后一个引号是不够的,因为这会使其他引号仍然以\"
转义为无效。
答案 1 :(得分:0)
public static String removeCharAt(String s, int pos) {
StringBuffer buffer = new StringBuffer( s.length() - 1 );
buffer.append( s.substring(0,pos) ).append( s.substring(pos+1) );
return buffer.toString();
}
您甚至可以稍微更改此代码以使用2个参数,以避免两次调用此方法。
答案 2 :(得分:0)
使用string substring()
功能,
String test = ".... my Data ";
int index =test.indexOf('[') + 1 ; //+1 to leave the character '[' as not needed
int index2 =test.indexOf(']') -1; ////-1 to leave the character ']' as not needed
String output = test .substring(index,index2);
答案 3 :(得分:0)
如果您知道JSON的结构不会改变,您也可以使用以下内容。
str = str.replace("\"[{", "[{");
str = str.replace("]\"}", "]}");