Я подаю заявку в единстве, которая соединяется с базой данных, и мне нужно систематизировать полученную из нее информацию, я использую следующий коруотин для получения информации:
private IEnumerator GetUsers(string url)
{
using (UnityWebRequest webRequest = UnityWebRequest.Get(url))
{
// Request and wait for the desired page.
yield return webRequest.SendWebRequest();
if (webRequest.isNetworkError)
{
Debug.Log(": Error: " + webRequest.error);
}
else
{
Debug.log("DATA:\n" + webRequest.downloadHandler.text);
}
}
}
, а затем я бынапример, данные, которые я получаю (имена, фамилии, код, пароль и т. д.), чтобы организовать их для печати или последующего использования в зависимости от того, что мне нужно, большое спасибо заранее.
и попробовалиспользовать сериализуемый класс для сохранения моих данных, но я работаю только с одним (и когда с моими собственными данными не с сервера), я также пытался создать вектор типа людей для сохранения более чем одной информации, и это неработать либо: C или, вернее, я не знал, как заставить его работать
[System.Serializable]
public class People
{
public string names, surnames, cedula, password, telephone, address, code,
email;
}
[System.Serializable]
public class PeopleList
{
public People[] users;
}
public class GetSendDate : MonoBehaviour
{
private IEnumerator GetUsers(string url)
{
using (UnityWebRequest webRequest = UnityWebRequest.Get(url))
{
// Request and wait for the desired page.
yield return webRequest.SendWebRequest();
if (webRequest.isNetworkError)
{
Debug.Log(": Error: " + webRequest.error);
}
else
{
PeopleList users = new People();
string json = webRequest.downloadHandler.text;
users = JsonUtility.FromJson<PeopleList>(json);
Debug.Log(users.user[0].names);
Debug.Log(users.user[0].surnames);
Debug.Log(users.user[0].cod);
}
}
}
}
это ответ webRequest.downloadHandler.text
[{"userID": 1, "idRole": 1, "email": "ada@gmail.com", "password": "$ 2a $ 10 $ YVXachXCaPBj9vDo.d4itO4vghtCvSMfrmeHCGJqJ6rSneM / hJsPy", "names": "Juanota Rosadita" , "surnames": "sapoton", "cedula": "123", "telefono": "789", "direccion": "147", "code": "258"}, {"idUsuario": 7, " idRole ": 1," email ":" vic@gmail.com "," password ":" $ 2a $ 10 $ JA1rszAgVK52OnWoOWDXneQcVUHwWBi2Di9o2z7kMqrWPyrjGoTnO "," names ":" victor "," Surnames ":" giron "," cedula ":" 1085 "," telefono ":" 313 "," direccion ":" yoquese "," code ":" 217 "}, {" idUsuario ": 8," idRole ": 1," email ":" juanos @ gmail. com "," password ":" $ 2a $ 10 $ 6EAy2e7dXASx2MPDA3vtW.heYuM1wsaEtFmA4Lb6BD0RCTJvm / HSe "," names ":" Juanito "," Surnames ":" Alcachofa "," cedula ":" 789 "," telefono ":" 31358964 " , "address": "123", "code": "753"}]
Я получаю следующую ошибку, когда язапустите функцию в единице:
ArgumentException: JSON должен представлять тип объекта.UnityEngine.JsonUtility.FromJson (System.String json, тип System.Type) (в C: /buildslave/unity/build/Modules/JSONSerialize/Public/JsonUtility.bindings.cs: 42) UnityEngine.JsonUtility.FromJson [T] (System.String json) (в C: /buildslave/unity/build/Modules/JSONSerialize/Public/JsonUtility.bindings.cs: 30) GetSendDate + d__6.MoveNext () (в ресурсах / сценариях / GetSendDate.cs: 73) UnityEngine.SetupCoroutine.InvokeMoveNext (перечислитель System.Collections.IEnumerator, System.IntPtr returnValueAddress) (в C: /buildslave/unity/build/Runtime/Export/Scripting/Coroutines.cs: 17)