You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何F# JSON类型提供者返回的字符串被额外双引号包裹?

F# JSON类型提供者:提取BooleanOrString字段的字符串值(避免双引号问题)

当你用F# JSON类型提供者解析出BooleanOrString类型的value字段时,直接调用ToString()会得到带两对双引号的结果——这是因为该类型的默认ToString()会输出JSON格式的字符串表示。不用靠修剪处理,有两种更靠谱的方式:

  • 模式匹配(推荐,类型安全)
    利用F#的模式匹配直接区分布尔和字符串分支,直接拿到原始字符串:

    match json.Value with
    | BooleanOrString.String rawStr -> rawStr  // 这里的rawStr就是不带额外引号的原始值
    | BooleanOrString.Boolean boolVal -> boolVal.ToString()  // 处理布尔值的情况
    
  • 直接访问类型属性
    BooleanOrString类型会自动生成对应属性存储原始值,字符串类型的话可以直接取StringValue:

    // 注意:如果当前value是布尔类型,访问StringValue会抛出异常,建议先判断类型
    if json.Value.IsString then
        let rawStr = json.Value.StringValue
    

这两种方法都能直接获取到无多余引号的原始字符串,不用再做修剪操作。

内容的提问来源于stack exchange,提问作者Matthew MacFarland

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 16:39:56