Java StringSubstitutor不使用JSON文本

Java StringSubstitutor不使用JSON文本,java,json,text,string-substitution,Java,Json,Text,String Substitution,我正在尝试使用StringSubstitutor进行一些字符串替换。我的有效负载通常是JSOn,它并不总是替换令牌 范例 String ss = "{\"media\":[{\"channels2\":\"[Token2]\",\"channels\":\"[Token1]\"}]}"; final Map<String, Object> tokenReplacementValues = new HashMap<>(); tokenReplacemen

我正在尝试使用StringSubstitutor进行一些字符串替换。我的有效负载通常是JSOn,它并不总是替换令牌

范例

  String ss = "{\"media\":[{\"channels2\":\"[Token2]\",\"channels\":\"[Token1]\"}]}";
    final Map<String, Object> tokenReplacementValues = new HashMap<>();
    tokenReplacementValues.put("Token2", "33");
    tokenReplacementValues.put("Token1", "22");
    System.out.println("Tokens to tokenReplacementInstruction = {}" + tokenReplacementValues);
    StringSubstitutor sub = new StringSubstitutor(tokenReplacementValues, "[", "]");
    ss = sub.replace(ss);
    System.out.println("After Token Replacement: " + ss);
String ss=“{\'media\”:[{\'channels2\”:\“[Token2]\”,\“channels\”:\“[Token1]\”}]}”;
final Map tokenReplacementValues=新HashMap();
tokenReplacementValues.put(“Token2”、“33”);
tokenReplacementValues.put(“Token1”、“22”);
System.out.println(“tokentokenreplacementInstruction={}”+tokenReplacementValues);
StringSubstitutor sub=新的StringSubstitutor(tokenReplacementValues,“[”,“]”);
ss=子部件更换(ss);
System.out.println(“代币替换后:+ss”);
但当我打印时,只有一个令牌被替换

令牌替换后:{“媒体”:[{“频道2”:“[Token2]”,“频道”:“22}]}


尝试使用不同的选项,如不同的前缀、后缀和令牌名称。似乎什么都不起作用。

我认为这是因为嵌套的
[
,第一个令牌变成了
[{\“channels2\”:\“[Token2]
,不会被替换

没有嵌套,我得到:

Before Token Replacement: {"media":{"channels2":"[Token2]","channels":"[Token1]"}}
After Token Replacement: {"media":{"channels2":"33","channels":"22"}}
我想您应该使用JSON处理库