我只是尝试使用<dependency>
<groupId>dcm4che</groupId>
<artifactId>dcm4che-core</artifactId>
<version>2.0.29</version>
</dependency>
属性临时存储字符串中的数据。我测试了很多方法,那些函数是我可以使用的(因为在我真正的类中我有ObjectId,很多序列化类都不起作用)。
然而,即使进行简单的测试它也不起作用,我的反序列化为空:
Serialization
结果是(public class MyClass
{
public string test = "bob";
}
static public void function()
{
MyClass test = new MyClass();
string data = Newtonsoft.Json.JsonConvert.SerializeObject(test);
object testb = Newtonsoft.Json.JsonConvert.DeserializeObject(data);
MyClass testa = Newtonsoft.Json.JsonConvert.DeserializeObject(data) as MyClass;
}
):
debugger
为什么呢?如何将带有键和值的testb对象转换为正确的类型?
答案 0 :(得分:2)
问题在于你的打字方式。
尝试这个,它应该工作得很好
MyClass testa = Newtonsoft.Json.JsonConvert.DeserializeObject<MyClass>(data);
这就是全部。
答案 1 :(得分:1)
使用通用反序列化方法:
MyClass testa = Newtonsoft.Json.JsonConvert.DeserializeObject<MyClass>(data);
答案 2 :(得分:1)
您应该使用公共getter和setter定义您的类:
public class MyData
{
public string Name {get; set;}
}
然后,创建一个类的实例并将其序列化:
var data = new MyData() { Name = "bob" };
var serialized = JsonConvert.SerializeObject(data);
Console.WriteLine(serialized);
反序列化时,可以使用DeserializeObject<T>
告诉JSON.NET将反序列化的类型反馈给:
var deserialized = JsonConvert.DeserializeObject<MyData>(serialized);
Console.WriteLine(deserialized.Name);