【问题标题】:StringSubstitutor not working with JSON textStringSubstitutor 不适用于 JSON 文本
【发布时间】:2020-05-19 18:59:36
【问题描述】:

我正在尝试使用 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);

但是当我打印时,只替换了一个标记。

令牌替换后:{"media":[{"channels2":"[Token2]","channels":"22"}]}

尝试了各种选项,例如不同的前缀、后缀和标记名称。似乎没有任何效果。

【问题讨论】:

    标签: java json text string-substitution


    【解决方案1】:

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

    没有嵌套我得到:

    Before Token Replacement: {"media":{"channels2":"[Token2]","channels":"[Token1]"}}
    After Token Replacement: {"media":{"channels2":"33","channels":"22"}}
    

    我猜你应该使用 JSON 处理库。

    【讨论】:

      猜你喜欢
      • 2015-10-05
      • 2012-01-21
      • 1970-01-01
      • 2016-06-21
      • 2023-03-09
      • 2012-12-06
      • 2014-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多