Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Json.Net序列化将对象转换为字符串而不是类_C#_Json.net - Fatal编程技术网

C# Json.Net序列化将对象转换为字符串而不是类

C# Json.Net序列化将对象转换为字符串而不是类,c#,json.net,C#,Json.net,我有以下课程: public partial class ArgumentBaseV2 : IArgumentBaseV2 { public string Name { get; set; } public string Type { get; set; } public object Value { get; set; } } public class SimpleClass { public string MyString { get;

我有以下课程:

public partial class ArgumentBaseV2 : IArgumentBaseV2

{

    public string Name { get; set; } 


    public string Type { get; set; } 


    public object Value { get; set; } 
}

public class SimpleClass 
{
    public string MyString  { get; set; }
}
当我的属性值是一个类时,它仍将作为字符串呈现

public void Ser()
{
ArgumentBaseV2 myObject = new ArgumentBaseV2();
myObject.Name = "Test";
myObject.Type = "Test2";
myObject.Value = new SimpleClass() { MyString = "HelloWorld" };
var result = JsonConvert.SerializeObject(myObject);
// result will be: { "Name":"Test", "Type":"Test2", Value: "{\"MyString\": \"HelloWorld\"}" }
// But I want: { "Name":"Test", "Type":"Test2", Value: {"MyString": "HelloWorld"} }
}

看起来您分别序列化了
属性。如果代码如下所示,则会发生这种情况:

ArgumentBaseV2 myObject = new ArgumentBaseV2();
myObject.Name = "Test";
myObject.Type = "Test2";
myObject.Value = JsonConvert.SerializeObject(new SimpleClass() { MyString = "HelloWorld" });
var result = JsonConvert.SerializeObject(myObject);

没有其他直观的方法(假设您的代码样本是完整的)可以发生这种情况

无法再现。对我来说。@Guruston哇。。。这意味着这是我这边的一个错误,但是如何呢=/当然,它被呈现为字符串。SerializeObject正在将对象序列化为JSON字符串。请检查此链接:您是否使用转换器或任何可以实现序列化的东西?但这意味着它不是。这个或转换器,或任何其他可以自定义结果json的东西。你的回答基本上是说OP没有显示,这意味着问题应该被编辑。这就是为什么我们有接近票/旗子。你说的“这就是为什么我们有接近票”是什么意思?你投票赞成结束这个问题吗?你是怎么做到的?我的意思是你不应该把你的发现作为答案,因为它表明了你应该使用的问题。稍晚一点可以使用。