gpt4 book ai didi

c# - 如何在 C# 中从 json 模式创建默认的 json 对象

转载 作者:太空宇宙 更新时间:2023-11-03 12:49:59 24 4
gpt4 key购买 nike

我不能在 json.net 上用谷歌搜索那个东西 api reference或任何地方。我想从填充了默认值的 json 模式创建对象。基本上是这样的:

var JsonSchema=JsonSchema.ReadSchemaFromSomeWhere();
dynamic DefaultObject= JsonSchema.GetDefaultObject();

您可能会在 json-schema-defaults 中看到的示例包。

示例

var JsonSchema=JsonSchema.ReadSchemaFromString("
{
"title": "Album Options",
"type": "object",
"properties": {
"sort": {
"type": "string",
"default": "id"
},
"per_page": {
"default": 30,
"type": "integer"
}
}");

dynamic DefaultObject= JsonSchema.GetDefaultObject();

//DefaultObject dump is
{
sort: 'id',
per_page: 30
}

更新

我希望 json.net 中的 lib 或 api 在运行时使用任何给定的有效 json 模式的默认值创建对象。

最佳答案

一个简单的例子可能是这样

[Test]
public void Test()
{
dynamic ob = new JsonObject();
ob["test"] = 3;

Assert.That(ob.test, Is.EqualTo(3));

}

我使用了 RestSharp 库,它提供了一个很好的动态实现,允许索引 ["test"];

那么 - 你剩下要做的就是从模式中读取属性并分配值(当然这只适用于简单的普通情况,但可能是一个开始

dynamic ob = new JsonObject();
foreach (var prop in JsonSchema.Properties)
{

if (prop.Default != null)
ob[prop.Name] = prop.Default
}

关于c# - 如何在 C# 中从 json 模式创建默认的 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35901446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com