# resolve_json_references

## `autogen.json_utils.resolve_json_references`

```python
resolve_json_references(schema)
```

Resolve JSON references in the given schema.

| PARAMETER | DESCRIPTION |
| --- | --- |
| `schema` | The JSON schema with references.<br>**TYPE:**`dict` |

| RETURNS | DESCRIPTION |
| --- | --- |
| `dict` | The JSON schema with resolved references.<br>**TYPE:**`dict[str, Any]` |

Source code in `autogen/json_utils.py`

|     |     |
| --- | --- |
| ```<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>30<br>31<br>32<br>33<br>34<br>35<br>36<br>37<br>38<br>39<br>40<br>41<br>42<br>``` | ```<br>@require_optional_import("jsonschema", "gemini")<br>def resolve_json_references(schema: dict[str, Any]) -> dict[str, Any]:<br>    """Resolve JSON references in the given schema.<br>    Args:<br>        schema (dict): The JSON schema with references.<br>    Returns:<br>        dict: The JSON schema with resolved references.<br>    """<br>    resolver = RefResolver.from_schema(schema)<br>    validator = Draft7Validator(schema, resolver=resolver)<br>    resolved_schema = validator.schema<br>    def resolve_refs(node: Any) -> Any:<br>        if isinstance(node, dict):<br>            if "$ref" in node:<br>                ref = node["$ref"]<br>                with resolver.resolving(ref) as resolved:<br>                    return resolve_refs(resolved)<br>            else:<br>                return {k: resolve_refs(v) for k, v in node.items()}<br>        elif isinstance(node, list):<br>            return [resolve_refs(item) for item in node]<br>        else:<br>            return node<br>    return resolve_refs(resolved_schema)  # type: ignore[no-any-return]<br>``` |
