我想把json转换成一个特定的对象。
String : "{\r\n \"Status\": \"PLANNED\"\r\n}"
我尝试了Newtonsoft命名空间,但是它返回了一个空值。
var Json= Newtonsoft.Json.JsonConvert.DeserializeObject<Model Class>(String )
我想要Json格式的结果,这样我就可以按“计划”从Json中提取值,但是我得到的是null。
PS:模型类包含两个属性,名称(字符串类型)和值(对象类型)。
发布于 2019-05-16 11:40:11
var s = "{\r\n \"Status\": \"PLANNED\"\r\n}";
var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<StatusModel>(s);您定义的模型不正确。你的模型应该是这样的:
public class StatusModel
{
public string Status { get; set; }
}现在,值将被提取到该模型中,您可以访问以下值:
var value = obj.Status; //"PLANNED"发布于 2019-05-16 12:01:57
JSON定义
JSON (JavaScript对象表示法)是一种轻量级数据交换格式.对人类来说读和写是很容易的。机器很容易解析和生成。它基于JavaScript编程语言的一个子集。
JSON牛顿软
Json.NET是一个流行的.NET高性能JSON框架。
问题:
您正在尝试将json反序列化到一个对象,而它正在返回一个null。在我们的上下文中,Deserialization是将json转换为对象的进程。
var Result= Newtonsoft.Json.JsonConvert.DeserializeObject<Model Class>(String);
因此您有一个,因为您知道 json 不对应 Model ,所以要将Json反序列化到模型,这就是为什么Json需要对应于Modele 224,这样才能存储<>E 125JsonE 226的信息。
您的模型:
模型可能包含一些不在json中的属性,反之亦然。
public class StatusModel
{
public string Status { get; set; }
}致以最良好的问候。
发布于 2019-05-16 12:54:27
您可以这样做(使用Newtonsoft )
using System;
using Newtonsoft.Json;
{
public class JsonHandler : IJsonHandler
{
public IJsonModel ReadJson(IJsonModel model, StreamReader reader)
{
try
{
string jsonFromFile;
using (reader))
{
jsonFromFile = reader.ReadToEnd();
}
status = JsonConvert.DeserializeObject<model>(jsonFromFile);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
return status;
}
}
}https://stackoverflow.com/questions/56167539
复制相似问题