C# JSON反序列化字符串内有""报错
时间: 2023-06-28 13:04:25 浏览: 301
在C#中,如果要反序列化一个包含双引号的JSON字符串,需要在字符串中将双引号转义为“\”。 例如,如果你有一个包含双引号的JSON字符串:
{
"name": "John "Smith""
}
你需要将它转义为:
{
"name": "John \"Smith\""
}
然后你就可以使用JsonConvert.DeserializeObject方法将其反序列化为对象了。例如:
string json = "{\"name\": \"John \\\"Smith\\\"\"}";
var obj = JsonConvert.DeserializeObject<MyClass>(json);
注意,这里的双引号需要使用反斜杠转义,所以我们要在反斜杠前再加一个反斜杠,以确保它被正确解析。
相关问题
C#将string反序列化成object
在C#中,你可以使用System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
或者 Newtonsoft.Json
库来进行字符串到object
的反序列化。这里以BinaryFormatter
为例:
using System;
using System.IO;
// 假设你有一个字符串,代表一个对象的序列化形式
string serializedString = "your_serialized_string_here";
// 创建一个MemoryStream来存储反序列化的数据
MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(serializedString));
// 使用BinaryFormatter创建一个反序列化器
BinaryFormatter formatter = new BinaryFormatter();
try {
// 将流中的内容反序列化回object
object deserializedObject = formatter.Deserialize(stream);
Console.WriteLine($"Deserialized Object: {deserializedObject}");
}
catch (Exception ex) {
Console.WriteLine($"Error during deserialization: {ex.Message}");
}
// 关闭流
stream.Close();
如果你使用的是Json
库,可以这样做:
using Newtonsoft.Json;
string jsonString = "your_json_string_here";
dynamic deserializedObject = JsonConvert.DeserializeObject(jsonString);
Console.WriteLine($"Deserialized Object: {deserializedObject}");
c#json序列化和反序列化
Json序列化和反序列化是将对象转换为Json格式的字符串或将Json格式的字符串转换为对象的过程。在C#中,可以使用Newtonsoft.Json包来实现Json序列化和反序列化。 以下是Json序列化和反序列化的示例代码:
// 引用Newtonsoft.Json包
using Newtonsoft.Json;
// 定义一个数据类
public class Data
{
public int id { get; set; }
public string Name { get; set; }
public string Number { get; set; }
public string Date { get; set; }
}
// 序列化一个对象
Data data = new Data { id = 1, Name = "aggregate", Number = "A1", Date = "2019-08-01" };
string json = JsonConvert.SerializeObject(data);
// 反序列化一个对象
Data newData = JsonConvert.DeserializeObject<Data>(json);
相关推荐














