# ToJson

> Generate a JSON representation of an object.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.7/script-reference/unityeditor.md)
* **Assembly:** UnityEditor.CoreModule

## ToJson(Object)

Generate a JSON representation of an object.

```csharp
public static string ToJson(object obj)
```

### Parameters

**** (\[Object]\(https\://learn.microsoft.com/dotnet/api/system.object)): The object to convert to JSON form.

### Returns

| Type                                                           | Description                       |
| -------------------------------------------------------------- | --------------------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | The object's data in JSON format. |

### Remarks

This is similar to [JsonUtility.ToJson](/engine/6000.7/script-reference/unityengine/jsonutility/tojson.md), but it supports any engine object. The output is similar to the properties exposed via the [SerializedObject](/engine/6000.7/script-reference/unityeditor/serializedobject.md) API, or as found in the YAML-serialized form of the object.

If the object contains fields with references to other Unity objects, those references are serialized by recording the asset guid and local file id for each reference.  This string can be saved, then deserialized in another session of the Unity Editor, and the references are resolved correctly. However only objects that are located in an non-scene asset file can be referenced.  References to objects within a scene, including the same scene, will not be serialized.

Additional Resources: [JsonUtility.ToJson](/engine/6000.7/script-reference/unityengine/jsonutility/tojson.md), [AssetDatabase.TryGetGUIDAndLocalFileIdentifier](/engine/6000.7/script-reference/unityeditor/assetdatabase/trygetguidandlocalfileidentifier.md)

## ToJson(Object, bool)

Generate a JSON representation of an object.

```csharp
public static string ToJson(object obj, bool prettyPrint)
```

### Parameters

**** (\[Object]\(https\://learn.microsoft.com/dotnet/api/system.object)): The object to convert to JSON form.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): If true, format the output for readability. If false, format the output for minimum size. Default is false.

### Returns

| Type                                                           | Description                       |
| -------------------------------------------------------------- | --------------------------------- |
| [string](https://learn.microsoft.com/dotnet/api/system.string) | The object's data in JSON format. |

### Remarks

This is similar to [JsonUtility.ToJson](/engine/6000.7/script-reference/unityengine/jsonutility/tojson.md), but it supports any engine object. The output is similar to the properties exposed via the [SerializedObject](/engine/6000.7/script-reference/unityeditor/serializedobject.md) API, or as found in the YAML-serialized form of the object.

If the object contains fields with references to other Unity objects, those references are serialized by recording the asset guid and local file id for each reference.  This string can be saved, then deserialized in another session of the Unity Editor, and the references are resolved correctly. However only objects that are located in an non-scene asset file can be referenced.  References to objects within a scene, including the same scene, will not be serialized.

Additional Resources: [JsonUtility.ToJson](/engine/6000.7/script-reference/unityengine/jsonutility/tojson.md), [AssetDatabase.TryGetGUIDAndLocalFileIdentifier](/engine/6000.7/script-reference/unityeditor/assetdatabase/trygetguidandlocalfileidentifier.md)
