【问题标题】:How do I remove quotes from a boolean value in a JSON string?如何从 JSON 字符串中的布尔值中删除引号?
【发布时间】:2011-05-11 13:48:58
【问题描述】:

我有:

String example = {"test":"true"}

但我想拥有:

example = {"test":true}

如何将第一个字符串转换为第二个字符串?

【问题讨论】:

  • if myString.startWith("String ") { return myString.substring(7); } ???
  • 请发布您的代码(编辑原始帖子,不要将其添加到 cmets 中,不要将其添加为答案)
  • 上下文是什么?你想达到什么目的?您是否使用特定的库或框架?
  • 如果“test”应该是一个布尔值,那么构建该 JSON 字符串的任何内容都应该在没有引号的情况下构建它。 JSON 字符串从何而来?你是自己建的吗?
  • 我已经非常显着地更新了您的问题标题。您的原始标题与您的要求并不相符。 如果我更改不正确,请告诉我,我会恢复它(或者我们可以一起澄清它)。

标签: java json string


【解决方案1】:

如果只有布尔值,您可以使用String result = example.replaceAll(":\"true\"", ":true"};String result = example.replaceAll(":\"false\"", ":false"};

【讨论】:

  • 如果只显示 json 的一个子集,并且还有其他值不一定是布尔值但可能具有值 true 或 false,这很危险。
【解决方案2】:

使用 regular expression 和/或 String 类方法,如“replaceAll”。

【讨论】:

    【解决方案3】:

    如果您希望它正确完成,那么您需要确保注意 json 数据中的其他条件。 假设 parse_data 是 JSONObject (java)

    String raw_tag = parse_data.toString();
            raw_tag = raw_tag.replaceAll(":\"true\"", ":true");
            raw_tag = raw_tag.replaceAll(",\"true\"", ",true");
            raw_tag = raw_tag.replaceAll("\\[\"true\"", "\\[true");
            raw_tag = raw_tag.replaceAll(":\"false\"", ":false");
            raw_tag = raw_tag.replaceAll(",\"false\"", ",false");
            raw_tag = raw_tag.replaceAll("\\[\"false\"", "\\[false");
    System.out.print(parseData);
    

    【讨论】:

    • 这在您将数据序列化到模型或数据存储 (*NOSQL) 时特别有用
    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    • 2022-01-01
    • 2011-05-12
    • 1970-01-01
    相关资源
    最近更新 更多