如何解析JSON而无需其他类?

时间:2019-08-15 11:20:18

标签: c# json json.net

我只有一种类型的json,其中包括一些属性

{"Agreement":{"agreementId":"1","CreatedOn":"2016-09-02T09:25:05","ModifiedOn":"2019-06-30T23:30:00.173"}}

我正在使用Newtonsoft JsonConvert。

是否可以将其解析为这样的模型?

public class Agreement
{
public int Id {get; set;}
public DateTime CreatedOn {get; set;}
public DateTime ModifiedOn {get; set;}
}

现在我必须声明其他包含此类的类

public class AgreementAdditional
{
public Agreement Agreement {get; set;}
}

可能是它的重复项,但我无法正确搜索到它

2 个答案:

答案 0 :(得分:2)

您可以使用JObject类。

var json = File.ReadAllText("json1.json");
var example = JObject.Parse(json)["Agreement"].ToObject<Agreement>();

尽管我认为AgreementAdditional类没有问题,因为这是您输入的确切格式。

答案 1 :(得分:2)

您可以使用dynamic

使用Newtonsoft,您可以这样做:

dynamic result = JsonConvert.DeserializeObject(json);

使用JObject,您可以这样做:

dynamic result = JObject.Parse(json);

要使用动态对象,请在json文件上使用相同的名称。

result.Agreement.agreementId
...
  

但是,创建类仍然是代码维护的更好选择。