如何在C#中创建Google.Cloud.AIPlatform.V1.OpenApiSchema以表示含指定属性的对象数组
如何在C#中创建Google.Cloud.AIPlatform.V1.OpenApiSchema以表示含指定属性的对象数组
我太懂这种卡壳的感觉了——刚开始用Google Cloud这个OpenApiSchema类型的时候,确实容易忽略掉定义对象属性的关键入口。你之前的代码已经走对了一半:先把数组类型Schema的Type设为Array,Items指定为Object类型,但差了最关键的一步:用Properties字典来定义对象的各个字段。
直接给你补全并优化后的代码,完全符合你要的“2个字符串属性+5个整数属性的对象数组”需求:
using System.Collections.Generic; using Google.Cloud.AIPlatform.V1; // 构建对象数组的OpenApiSchema OpenApiSchema arraySchema = new() { Type = Type.Array, Items = new OpenApiSchema { Type = Type.Object, // 核心在这里:用Properties字典定义对象的所有属性 Properties = new Dictionary<string, OpenApiSchema> { // 定义两个字符串类型属性 ["username"] = new OpenApiSchema { Type = Type.String }, ["description"] = new OpenApiSchema { Type = Type.String }, // 定义五个整数类型属性 ["age"] = new OpenApiSchema { Type = Type.Integer }, ["score1"] = new OpenApiSchema { Type = Type.Integer }, ["score2"] = new OpenApiSchema { Type = Type.Integer }, ["score3"] = new OpenApiSchema { Type = Type.Integer }, ["total"] = new OpenApiSchema { Type = Type.Integer } }, // 可选:如果需要某些属性必填,就把属性名加到Required集合里 Required = { "username", "age" } } };
简单捋下关键点:
Properties是Dictionary<string, OpenApiSchema>类型,键就是你想要的属性名称,值对应该属性的Schema定义——字符串就设Type = Type.String,整数就设Type = Type.Integer。- 我额外加了
Required属性的示例,要是你不需要可以直接删掉;如果需要强制某些字段必须存在,就把字段名填进去就行。
这样定义出来的Schema,就完全符合你要的“包含指定属性的对象数组”结构了,你可以直接拿去用~
内容来源于stack exchange
相关产品推荐
相关产品推荐

