如何删除第一个“从字符串

时间:2013-12-09 13:17:55

标签: java json

我从服务器获取此字符串,我需要先删除“

得到这个

  

{ “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(']');

4 个答案:

答案 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("]\"}", "]}");