
# JSON相等判断
**JSON相等判断评估器**
表1评估器信息 
| 分类          || 详情                  |
|:---|---|:---|
| 基础信息 | 评估器名称 | JSON相等判断。           |
| 效果说明 | 功能概述  | 检查两个JSON对象是否完全相等。   |
| 效果说明 | 评估方式  | 代码评估。               |
| 效果说明 | 评估目标  | 文本、JSON相等判断。        |
| 效果说明 | 适用场景  | 离线评估。               |
| 效果说明 | 应用场景  | 需要判断两个JSON对象是否完全相等。 |
| 评分标准 | 1.0分  | 两个JSON对象完全相等。       |
| 评分标准 | 0.0分  | 两个JSON对象不相等。        |
   
**评估器参数说明：**
表2评估器参数说明 
| 参数类型 | 参数名称              | 是否必填 | 参数说明               |
|:---|:---|:---|:---|
| 输入参数 | actual_output     | 是    | 实际输出的JSON对象。       |
| 输入参数 | reference_output  | 是    | 评测集中预设的标准参考JSON对象。 |
| 输入参数 | strict_order      | 否    | 是否严格按照列表顺序。        |
| 输入参数 | ignore_extra_keys | 否    | 是否忽略多余的键。          |
| 输出参数 | score             | 是    | 评估得分（0.0/1.0）。     |
| 输出参数 | reason            | 是    | 评分理由说明。            |
   
使用该评估器前，需要在评测集中为每条测试数据准备好actual_output（实际JSON对象）和reference_output（参考JSON对象）。评估时平台会自动将智能体的实际输出填入actual_output，几项数据共同传入评估器进行评分。各字段的推荐映射方式如下：
**输入格式示例：**
```
{
    "actual_output": "{\"name\": \"Alice\", \"age\": 30}",
    "reference_output": "{\"age\": 30, \"name\": \"Alice\"}",
    "strict_order": true,
    "ignore_extra_keys": false
}
```
**输出格式示例：**
```
{
    "score": 1.0,
    "reason": "actual_output和reference_output相等，actual_output={" name ": " Alice ", " age ": 30}, reference_output={" age ": 30, " name ": " Alice "}"
}
```
