I am still learning , Here is the given format -
{"table": "userdata","data":{ "walletaddress": "0x15be4040E5147Cd9F8Cc4600C9D6Da720F2631Ea", "character": "alice","gender": "male","name": "test_joe"}}
Here is my code -
public class PlayerData
{
public string walletaddress;
public string name;
public string gender;
public int character;
}
public IEnumerator POST()
{
string url = "xyz";
PlayerData playerData = new PlayerData();
playerData.character = PlayerPrefs.GetInt("PlayerAvatar");
//data.userEggCount = 0;
playerData.gender = PlayerPrefs.GetString("PlayerGender");
playerData.name = PlayerPrefs.GetString(playerNamePrefKey);
playerData.walletaddress = "123";//PlayerPrefs.GetString("Account");
string jsonStringTrial = JsonUtility.ToJson(playerData);
Debug.Log(jsonStringTrial);
using(UnityWebRequest request = UnityWebRequest.Put(url, jsonStringTrial))
{
request.method = UnityWebRequest.kHttpVerbPOST;
request.SetRequestHeader("Content-Type", "application/json");
request.SetRequestHeader("Accept", "application/json");
yield return request.SendWebRequest();
if(request.result == UnityWebRequest.Result.Success)
{
Debug.Log("Sent Data Successfully");
}
else
{
Debug.Log("Data not Sent");
}
}
this gives me data in this format -
{"walletaddress":"123","name":"Darshan","gender":"1","character":1}
You should construct your models to achieve json same as {"table": "userdata","data":{ "walletaddress": "0x15be4040E5147Cd9F8Cc4600C9D6Da720F2631Ea", "character": "alice","gender": "male","name": "test_joe"}}
to,
Do some adjustment if required but this would work nearly or 100% as you need,
[System.Serializable]
public class Data
{
public string walletaddress;
public string character;
public string gender;
public string name;
}
[System.Serializable]
public class PlayerData
{
public string table;
public Data data;
}
public IEnumerator POST()
{
string url = "xyz";
PlayerData playerData = new PlayerData();
playerData.table = "<valuetable>"
playerData.data.character = PlayerPrefs.GetInt("PlayerAvatar");
//data.userEggCount = 0;
playerData.data.gender = PlayerPrefs.GetString("PlayerGender");
playerData.data.name = PlayerPrefs.GetString(playerNamePrefKey);
playerData.data.walletaddress = "123";//PlayerPrefs.GetString("Account");
string jsonStringTrial = JsonUtility.ToJson(playerData);
Debug.Log(jsonStringTrial);
using (UnityWebRequest request = UnityWebRequest.Put(url, jsonStringTrial))
{
request.method = UnityWebRequest.kHttpVerbPOST;
request.SetRequestHeader("Content-Type", "application/json");
request.SetRequestHeader("Accept", "application/json");
yield return request.SendWebRequest();
if (request.result == UnityWebRequest.Result.Success)
{
Debug.Log("Sent Data Successfully");
}
else
{
Debug.Log("Data not Sent");
}
}