我不确定如何做到这一点。我从这样的www请求中获得了一些用户:
Dictionary<string, string> headers = new Dictionary<string, string>();
headers.Add("Authorization", "Basic "+System.Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes("user*pass")));
WWW www = new WWW("https://somedomain.com:8000/users", null, headers);
yield return www;
Debug.Log(www.text);
调试返回以下内容:
[{"user_id":"ho896ty6","user_name":"Mikje Flanders","age":43},{"user_id":"ft357hj","user_name":"Anna Simpson","age":56}]
现在,我有一个像这样的对象:
public class userData
{
string user_id;
string user_name;
int age;
}
我想将数据放入其中,但不确定json是数组时。我尝试过这种方法,但是没有运气:
userData thisUser = JsonUtility.FromJson<userData>(www.text);
希望有人可以帮助我,在此先感谢:-)
答案 0 :(得分:1)
1)从Newtonsoft.json
安装Nuget Package Manager
并添加对程序的引用
像using Newtonsoft.Json;
2)这是您的用户模型类
public class User
{
public string user_id { get; set; }
public string user_name { get; set; }
public int age { get; set; }
}
3)然后将json反序列化为模型,例如
class Program
{
static void Main(string[] args)
{
//Sample json i get in variable
var json = @"[{'user_id':'ho896ty6','user_name':'Mikje Flanders','age':43},{'user_id':'ft357hj','user_name':'Anna Simpson','age':56}]";
//This line convert your string json to c# object
List<User> userList = JsonConvert.DeserializeObject<List<User>>(json);
//Loop through to get each object inside users list
foreach (User user in userList)
{
Console.WriteLine($"user_id: {user.user_id}, user_name: {user.user_name}, age: {user.age}");
}
Console.ReadLine();
}
}
输出:
尝试一次,可能对您有帮助。
答案 1 :(得分:0)
您将必须使用定界符来解析Json,除非在这种情况下使用Visual Studio,请在安装了此软件包的情况下检查Newtonsoft.Json
的nuget,您可以:
Using NewtonSoft.Json;
列表udat = JsonConvert.DeserializeObject>(json);
foreach( userData data in udat){
//do something here to each item;
}
[
{
"user_id": "ho896ty6",
"user_name": "Mikje Flanders",
"age": 43
},
{
"user_id": "ft357hj",
"user_name": "Anna Simpson",
"age": 56
}
]
我稍微整理了一下代码,以便您了解自己的工作。 在您的课程中添加了一些吸气剂和吸气剂...
看起来您的请求中返回了多个userData,因此您可能需要一个列表或数组。如果您需要帮助,请告诉我!
public class userData
{
public string user_id {get;set;}
public string user_name{get;set;}
public int age{get;set;}
}
public class userList
{
public List<userData> users{get;set;}
}