答案数据模型

答案校验数据

C#类

  • AnswerData数据结构说明
    说明:下划横线空的答案集合
字段 类型 默认 注释
AnswerList List<Answer> 答案集合
  • Answer数据结构说明
    说明:答案的数据结构
字段 类型 默认 注释
Type int null 答案类型,0是数值,1是文本,2是器材数值参数,3是器材文本参数,4是表达式
Value string null 答案的值
PreConditionInfo string null 前置条件信息
ExpressionValueInfo ExpressionValue null 答案通过表达式计算的信息
DeviationInfo Deviation null 误差设置信息
ElementValueInfo ElementValue null 答案是元器件参数的设置信息
  • PreCondition数据结构说明
    说明:当前答案的前置条件,解决当某个下划填空是什么的时候,当前的答案是多少的需求
字段 类型 默认 注释
ConditionList List<Condition> 条件的集合
ConditionsContext string 集合中的条件的关系
  • Condition数据结构说明
    说明:当前答案的前置条件,解决当某个下划填空是什么的时候,当前的答案是多少的需求
字段 类型 默认 注释
QuestionItemID string 其他下划横线题的ID
  • ExpressionValue数据结构说明
    说明:答案通过表达式计算的信息,描述答案是通过什么表达式计算得到的
字段 类型 默认 注释
Expressions List<Expression> 表达式集合
ExpressionRelation string null Expressions中表达式之间的关系:例如”Expression1*Expression2”
  • Expression数据结构说明
    说明:表达式的数据结构
字段 类型 默认 注释
ID string Expression的ID
CompareType int 0 表达式计算的结果与用户填写的值的比较方式
Content string 表达式的内容
DeviationInfo Deviation null 误差设置信息与CompareType一样,都是在校验答案是否正确时使用
Regular string null 正则表达式,可以用来验证Content计算的结果是否是整数,是否是偶数等等
  • Deviation数据结构说明
    说明:误差的设置信息
字段 类型 默认 注释
Value float 误差值
Type int 0 误差类型0无误差,1是数值,2是百分比
KeepDecimalPoint int -1 保留小数点位数,-1表示不限,大于-1表示对应保留的位数
  • ElementValue数据结构说明
    说明:当答案是元器件的器材参数时候,用于描述是哪个元器件的
字段 类型 默认 注释
ElementCode string 元器件器材类型或者指定元器件的GUID
ElementCodeType int 1 0表示ElementCode是元器件的GUID,1表示是元器件的类型ID
PropertyName string 器材属性名称

CompareType =
{
EQ = 0, —等于
LT = 1, —小于
GT = 2, —大于
LE = 3, —小于等于
GE = 4, —大于等于
JY=5, —介于A与B之间,包含A,B
BD=6, —不等于
DYHXY=7, —>=A || <=B
Equal=20, —完全匹配
Contain=21,—含有
NoContain=22,-不含有
}

  • 整体Json数据

    {
      /**一个下划横线可以有多个答案**/
      "AnswerList": [
          {
              /**文本型的答案**/
              "Value": "A",
              "Type":1,
              "PreConditionInfo": null,
              "ExpressionValueInfo": null,
              "DeviationInfo": null,
              "ElementValueInfo": null
          },
          {
              /**数值型的答案**/
              "Value": "1.1",
              "Type":0,
              "PreConditionInfo": null,
              "ExpressionValueInfo": null,
              "DeviationInfo": {/**误差设置**/
                  "Value": 0.100000001490116,/**误差允许的范围**/
                  "Type": 1,/**误差类型,1是数值,2是百分比**/
                  "KeepDecimalPoint": 1 /**小数点限制**/
              },
              "ElementValueInfo": null
          },
          {
              /**与场景元器件相关的文本型的答案**/
              "Value": "器材属性是字符串",
              "Type":3,
              "PreConditionInfo": null,
              "ExpressionValueInfo": null,
              "DeviationInfo": null,
              "ElementValueInfo": {
                  "ElementCode": "4161",/**元器件的类型ID**/
                  "ElementCodeType": 2,/**1:ElementCode表示是元器件类型ID,2:ElementCode表示是元器件GUID**/
                  "PropertyName": "器材属性名称"
              }
          },
          {
              /**与场景元器件相关的数值型的答案**/
              "Value": "2",
              "Type":2,
              "PreConditionInfo": null,
              "ExpressionValueInfo": null,
              "DeviationInfo": {
                  "Value": 0.100000001490116,
                  "Type": 1,
                  "KeepDecimalPoint": 1
              },
              "ElementValueInfo": {
                  "ElementCode": "4162",
                  "ElementCodeType": 2,
                  "PropertyName": "FireState 木条燃烧状态"
              }
          },
          {
              /**表达式相关的数值型的答案**/
              "Value": "",
              "Type":4,
              "PreConditionInfo": null,
              "ExpressionValueInfo": {
                  /**当前的答案是[QuestionItemID1]+[QuestionItemID2]相加的结果或者是[QuestionItemID3]+[QuestionItemID4]相加的结果**/
                  /**ExpressionRelation描述的是两个Expression的关系,And用*号表示,OR用+号表示**/
                  "ExpressionRelation": "[9afc16a5-8997-4b78-a8da-19e1e0161c87]+[4cf3d057-072b-4fc0-b545-98042fe93d41]",
                  "Expressions": [
                      {
                          "ID": "9afc16a5-8997-4b78-a8da-19e1e0161c87",
                          "CompareType": 1,
                          "DeviationInfo": {
                              "Value": 0.100000001490116,
                              "Type": 1,
                              "KeepDecimalPoint": 1
                          },
                          "Content": "[QuestionItemID1]+[QuestionItemID2]",/**表达式的内容**/
                          "Regular": null /**Regular正则表达用于校验Content的计算结果,例如Content的计算结果=5,可以利用Regular校验5是否是自然数,是否是基数,偶数等等**/
                      },
                      {
                          "ID": "4cf3d057-072b-4fc0-b545-98042fe93d41",
                          "CompareType": 2,
                          "DeviationInfo": {
                              "Value": 0.5,
                              "Type": 1,
                              "KeepDecimalPoint": 2
                          },
                          "Content": "[QuestionItemID3]+[QuestionItemID4]",
                          "Regular": null
                      }
                  ]
              },
              "DeviationInfo": null,
              "ElementValueInfo": null
          }
      ]
    }