Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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_Json.net - Fatal编程技术网

C# JSON.NET反序列化函数不返回值

C# JSON.NET反序列化函数不返回值,c#,json,json.net,C#,Json,Json.net,我使用了JSON.NET反序列化对象函数,但没有得到任何值。它返回的所有内容都是空的!救命啊 下面是代码(实际上非常简单的代码!): 公共类FMKey { 公共字符串键名{get;set;} 公共字符串键值{get;set;} } 公共部分类GetFMDetails:System.Web.UI.Page { 受保护的无效页面加载(对象发送方、事件参数e) { 字符串FMID=“{\'id\':\'22\'”; var FM=JsonConvert.DeserializeObject(FMID);

我使用了JSON.NET反序列化对象函数,但没有得到任何值。它返回的所有内容都是空的!救命啊

下面是代码(实际上非常简单的代码!):

公共类FMKey
{
公共字符串键名{get;set;}
公共字符串键值{get;set;}
}
公共部分类GetFMDetails:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
字符串FMID=“{\'id\':\'22\'”;
var FM=JsonConvert.DeserializeObject(FMID);
Response.ContentType=“text/plain”;
响应。写入(“收到:+FM.keyName+”+FM.keyValue);
}
}

FM.keyName和FM.keyValue都包含NULL!我做错了什么?

您的JSON需要与类的定义匹配。您将需要以下内容:

string FMID = "{\"keyName\":\"id\",\"keyValue\":\"22\"}";
var FM = JsonConvert.DeserializeObject<FMKey>(FMID);

您尝试反序列化的json与您尝试将其反序列化为的对象的定义不匹配。如果您的对象只有一个字符串类型的字段-
id
,那么它就可以工作了


为了使用泛型方法进行反序列化,您需要提供一个包含所有json属性都可以映射到的字段的对象。由于对象上没有
id
字段,因此失败。如果使用常规反序列化方法,您会发现它创建了一个匿名对象,其属性类型为string,名为
id

您的JSON与类中的属性不匹配。您的JSON中有
id
,但它与您的FMKey类属性不匹配。那么,它应该是什么呢?感谢
string FMID=“{\“keyName\”:“id\”,“keyValue\”:“22\”
string FMID = "{\"keyName\":\"id\",\"keyValue\":\"22\"}";
var FM = JsonConvert.DeserializeObject<FMKey>(FMID);
var test = new FMKey() {keyName = "id", keyValue = "22"};
var result = JsonConvert.SerializeObject(test); // This will spit out the correct JSON