a ‘primitive value’ or ‘StartObject’node was expected

In this spfx tutorial, I have explained how to fix the error ‘node of type ‘StartArray’ was read from the JSON reader when trying to read a value of a property; however, a ‘PrimitiveValue’ or ‘StartObject’ node was expected.’

A ‘PrimitiveValue’ or ‘StartObject’ node was expected

Recently, I was working on a SharePoint framework solution where I was inserting multiple values in a SharePoint list multi-select choice field column. While executing the code, I got the error “a ‘PrimitiveValue’ or ‘StartObject’ node was expected.”

The complete error looks like the below:

spfx error 'a 'PrimitiveValue' or 'StartObject' node was expected
spfx error ‘a ‘PrimitiveValue’ or ‘StartObject’ node was expected

Here I was using the below SharePoint list ‘Task management’ to insert items.

an unexpected 'startobject' node was found for property named

In the above SharePoint list ‘TaskManagement’ contains three columns:

  • Title(Single line of text)
  • Assignee(Single line of text)
  • Assignments (choice -mult selection enabled),

For this, I have created an spfx webpart solution ‘createSPListItem’, which contains these three fields like below.

error 'a 'PrimitiveValue' or 'StartObject' node was expected
error ‘a ‘PrimitiveValue’ or ‘StartObject’ node was expected

So here when we submit this form after filling it, we will get this error ‘a ‘PrimitiveValue’ or ‘StartObject’ node was expected.’ Because when we select multiple values in webpart, it comes as an array, but when we insert the value in the column of the SharePoint list, it is inserted as an array. But we need to insert the value as an object.

a 'startobject' node or 'primitivevalue' node with null value was expected
sharepoint framework unexpected error ‘a ‘PrimitiveValue’ or ‘StartObject’ node was expected

So the error is coming when we add the item to the SharePoint list column Assignments, this is the code:

private onSubmit = async (event: React.FormEvent<HTMLFormElement>): Promise<void> => {
    event.preventDefault();
    // Insert form data to SharePoint list
    const { title, assignee, assignments } = this.state;
    try {
      console.log(title);
      console.log(assignee);
      console.log(assignments);

      const list = await sp.web.lists.getByTitle('TaskManagement').items.get();
      console.log(list);
      await sp.web.lists.getByTitle('TaskManagement').items.add({
        Title: title,
        Assignee: assignee,
        Assignments:assignments 
      });
      this.setState({
        title: '',
        assignee: '',
        assignments: [],
        successMessage: 'Data added to SharePoint list successfully!',
      });
    } catch (error) {
      console.error('Error adding data to SharePoint list:', error);
    }
  };

To solve this error, we just need to insert the Assignments value as an object and the error will vanished. Also you can insert the value, to the SharePoint list.

private onSubmit = async (event: React.FormEvent<HTMLFormElement>): Promise<void> => {
    event.preventDefault();
    // Insert form data to SharePoint list
    const { title, assignee, assignments } = this.state;
    try {
      console.log(title);
      console.log(assignee);
      console.log(assignments);

      const list = await sp.web.lists.getByTitle('TaskManagement').items.get();
      console.log(list);
      await sp.web.lists.getByTitle('TaskManagement').items.add({
        Title: title,
        Assignee: assignee,
        Assignments:{results:assignments} 
      });
      this.setState({
        title: '',
        assignee: '',
        assignments: [],
        successMessage: 'Data added to SharePoint list successfully!',
      });
    } catch (error) {
      console.error('Error adding data to SharePoint list:', error);
    }
  };

When we fill out the form and click on submit button, the data is inserted to the SharePoint list successfully.

a 'startobject' node or 'primitivevalue' node with null value was expected
spfx unexpected error ‘a ‘PrimitiveValue’ or ‘StartObject’ node was expected

This is how we can resolve the error “a ‘startobject’ node or ‘primitivevalue’ node with null value was expected” by passing the object to a multi-selected choice column in the SharePoint list.

Conclusion

In this spfx tutorial, we saw how to resolve the error ‘a ‘PrimitiveValue’ or ‘StartObject’ node was expected.’

  • a ‘primitive value’ node was expected
  • a ‘startobject’ node or ‘primitivevalue’ node with null value was expected
  • an unexpected ‘startobject’ node was found for property named

You may also like the following spfx tutorials:

>