【发布时间】:2021-02-05 13:16:07
【问题描述】:
我有这个看起来像这样的 JsonDocument
string jsonString = "{\"year\": 0, \"class\": [], \"schools\": []}";
JsonDocument newSchema = JsonDocument.Parse(jsonString)
还有一堆 JSON 文件,其中包含这些属性。
每个 JSON 文件都有相同的year,但包含一个特定的class 和一个特定的school 的信息。除了year之外,它们都不相同。
我试图创建一个包含所有 class 的 JsonDocument,并将学校放在一个 JsonDocument 中,但似乎在将 JsonProperty 附加在一起时遇到了问题..
这是我迄今为止尝试过的:
using (JsonDocument newSchema = JsonDocument.Parse(jsonString))
{
List<JsonProperty> properties = new List<JsonProperty>();
foreach(JsonProperty a in newSchema.RootElement.EnumerateObject())
{
properties.Add(a);
}
foreach (string classandSchoolDefinition in loadableSchemaDefinitions)
{
string schemaDefinitionAsJson = File.ReadAllText(classandSchoolDefinition );
JsonDocument schemaJson = JsonDocument.Parse(schemaDefinitionAsJson);
foreach (JsonProperty a in schemaJson.RootElement.EnumerateObject())
{
switch (a.Name)
{
case "year":
Console.WriteLine($@"({a.Name}+{a.Value}, {a.Value.ValueKind})");
break;
case "class":
Console.WriteLine($@"({a.Name}+{a.Value}, {a.Value.ValueKind})");
break;
case "school":
Console.WriteLine($@"({a.Name}+{a.Value}, {a.Value.ValueKind})");
break;
default:
break;
}
}
}
如何将每个Jsonproperty 值连接到一个组合newSchema,而不是保持为一个?
在这种情况下,我只想将一个数组附加到另一个数组。
【问题讨论】:
-
我试图创建一个 JsonDocument,将所有班级和学校放在一个 JsonDocument 中, -- 你能解释一下你想怎么做吗?从您的问题中不清楚正确的合并算法应该是什么。也许您可以 edit 您的问题包括几个示例文件和所需的结果 - 即 minimal reproducible example?
-
@dbc -
newSchema不包含班级和学校,但是每个 json 文件在 EnumerableArray 字段类和学校中都包含一个 EnumerableObject,可以在 json 文件中找到的每个 EnumberableObject 都有被添加到 EnumerableArray。 -
我需要一个 AddEnumerableObjectToEnumerableArray(array, object) 函数
-
您能否分享几个简单的 JSON 示例作为字符串,显示您的输入和所需的输出?您只想连接
"class"和"schools"数组吗?如果"year"值不同会怎样? -
我对@987654336@ atm 不感兴趣,但如果它们不同,它应该会失败。
标签: c# asp.net system.text.json