4th*_*ace 8 c# asp.net-mvc json visual-studio
我有以下简单的类:
public class Test
{
public string property1 { get; set; }
public string property2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用以下命令将其序列化为JSON时:
Test t = new Test() { property1 = "p1", property2 = "p2" };
var serializedData = JsonConvert.SerializeObject(t, Formatting.None);
Run Code Online (Sandbox Code Playgroud)
我得到的JSON如下所示:
当我尝试将其提交到WEB API应用程序时,这将显示为null.我application/json
在内容标题中使用.
如果我改为以字符串形式提交相同的类,它可以正常工作:
string test = "{\"property1\":\"p1\",\"property2\":\"p2\"}";
var serializedData = JsonConvert.SerializeObject(test, Formatting.None);
Run Code Online (Sandbox Code Playgroud)
但它在Visualizer中看起来像这样:
如果我将两个字符串粘贴到记事本中,它们看起来完全一样.
任何想法为什么类序列化不起作用?
JSON 序列化工作正常。在第一种情况下,当您序列化对象时,它会返回正常的 JSON:
{
"property1": "p1",
"property2": "p2"
}
Run Code Online (Sandbox Code Playgroud)
在第二种情况下,您已经手动序列化了 JSON,并且尝试第二次序列化它,这会导致一个新的 JSON 包含 JSON 本身作为单个值或更可能是单个键:
{ "{\"property1\":\"p1\",\"property2\":\"p2\"}" }
Run Code Online (Sandbox Code Playgroud)
您可以通过运行以下代码来测试第二个字符串是否已序列化:
var serializedData2 = JsonConvert.DeserializeObject(test);
Run Code Online (Sandbox Code Playgroud)
它应该返回 JSON 的键值:
{
"property1": "p1",
"property2": "p2"
}
Run Code Online (Sandbox Code Playgroud)
我猜空值来自其他地方。
归档时间: |
|
查看次数: |
106 次 |
最近记录: |