The correct json (tested using postman) is
{
"name": "MyVariableGroup",
"description": "This is my variable group",
"type": "Vsts",
"variables": {
"myVariable": {
"value": "myValue"
},
"myPublicVariable": {
"value": "myPublicValue"
}
},
"variableGroupProjectReferences": [
{
"name" : "MyVariableGroup",
"description" : "This is my variable group",
"projectReference": {
"id":"project_id",
"name": "project_name"
}
}
]
}