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; }
}
我有一些编码为 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; }
}