System.Text.Json 可以用于解码和解析编码的 JSON 字符串吗?

Can System.Text.Json be used to decode and parse an encoded JSON string?

我有一些编码为 JSON 的传入文本。

{\"field1\":\"value1\",\"field2\":\"value2\"}

当我尝试用 JsonDocument.Parse(text) 解析它时,我收到一个关于 \ 字符的错误。

我试过了...

var options = new JsonSerializerOptions
{
   Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
};

var obj = JsonDocument.Parse(text, options);

...但这并没有帮助。

我在这里漏掉了一步。我正在考虑先去掉 \,但如果有可用的解码器,那将更可取。

System.Text.Json 命名空间中是否有内置的选项或方法,我可以在尝试解析之前使用它来准备该字符串?

您不需要任何选项

    var json="{\"field1\":\"value1\",\"field2\":\"value2\"}";

    var obj = JsonDocument.Parse(json);

结果

{
  "field1": "value1",
  "field2": "value2"
}

或者如果你需要反序列化

Data data= System.Text.Json.JsonSerializer.Deserialize<Data>(json);

public partial class Data
{
    [JsonProperty("field1")]
    public string Field1 { get; set; }

    [JsonProperty("field2")]
    public string Field2 { get; set; }
}