# Create & Save Object

Storing data on Symbyoz is built around **Parse** and his `ParseObject`. \
Each `ParseObject`contains key-value pairs of JSON-compatible data. This data is schemaless, which means that you don’t need to specify ahead of time what keys exist on each `ParseObject`. &#x20;

If you want to have a structured model of your object, you can do it so by registering what we call [Subclasses](/code_examples/subclasses.md) (see more infos on [this page](/code_examples/subclasses.md)).

## Simple Way

{% tabs %}
{% tab title="Java" %}

```java
import com.parse.ParseObject;

public void createObject()
{
    ParseObject object = new ParseObject("ClassName");
    // object.put(key, value);
    object.put("age", 37);
    object.put("userName", "John Doe");
    object.put("isFunny", false);
    
    object.saveInBackground();
}
```

{% endtab %}

{% tab title="Swift" %}

```swift
import Parse

class testVC: UIViewController
{
    override func viewDidLoad()
    {
        super.viewDidLoad()
        self.createObjet()
    }


    func createObjet()
    {
        let newObject = PFObject.init(className:"test")
        newObject["TitleA"] = "valueA"
        newObject["isBoolean"] = true
        newObecjt["pointer"] = PFUser.current()        
        newObject.saveInBackground()   
    }
}
```

{% endtab %}
{% endtabs %}

## With Callback

{% tabs %}
{% tab title="Java" %}

```java
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.SaveCallback;

public void createObject()
{
        ParseObject object = new ParseObject("ClassName");
        // object.put(key, value);
        object.put("age", 37);
        object.put("userName", "John Doe");
        object.put("isFunny", false);

        object.saveInBackground(new SaveCallback()
        {
            @Override
            public void done(ParseException e) 
            {
                
            }
        });
}
```

{% endtab %}

{% tab title="Swift" %}

```swift
import Parse
​
class testVC: UIViewController
{
    override func viewDidLoad()
    {
        super.viewDidLoad()
        self.createObjet()
    }
​
​
    func createObjet()
    {
        let newObject = PFObject.init(className:"test")
        newObject["TitleA"] = "valueA"
        newObject["isBoolean"] = true
        newObecjt["pointer"] = PFUser.current()        
        newObject.saveInBackground(block:
        {
            (isSuccess, error) in
                if let error = error
                {   
                    print (error.localizedDescription)
                }
                else 
                {
                    if (isSuccess)
                    {
                        // Do something                    
                    }
                }
        })
    }
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.symbyoz.io/code_examples/create_save_object.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
