{
"page": 2,
"per_page": 3,
"total": 12,
"total_pages": 4,
"data": [
{
"id": 4,
"first_name": "Eve",
"last_name": "Holt",
"avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/128.jpg"
},
{
"id": 5,
"first_name": "Charles",
"last_name": "Morris",
"avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/stephenmoon/128.jpg"
},
{
"id": 6,
"first_name": "Tracey",
"last_name": "Ramos",
"avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/bigmancho/128.jpg"
}
]
}
上面的JSON是我尝试测试的格式,因此我将其添加到字符串中但显示错误。因此我将其编辑为以下代码,删除了双引号并添加了单引号,现在错误消失了。不确定使用单引号或双引号。
string JSONDataString;
JSONDataString = @"{
'page': 2,
'per_page': 3,
'total': 12,
'total_pages': 4,
'data': [
{
'id': 4,
'first_name': 'Eve',
'last_name': 'last_name',
'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/128.jpg'
},
{
'id': 5,
'first_name': 'Charles',
'last_name': 'Morris',
'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/stephenmoon/128.jpg'
},
{
'id': 6,
'first_name': 'Tracey',
'last_name': 'Ramos',
'avatar': 'https://s3.amazonaws.com/uifaces/faces/twitter/bigmancho/128.jpg'
}
]
}";
我在字符串的开头使用了@,但我不知道为什么在某些示例中看到了为什么使用它;我删除了所有双引号并添加了单引号;我创建了另一个类来处理来自下面给出的JSON
public class DataHandler {
public int id;
public string firstname;
public string lastname;
public string avatar;
public DataHandler(int ID,string FName,string LName,string Avatar)
{
this.id = ID;
this.firstname = FName;
this.lastname = LName;
this.avatar = Avatar;
}
}
如何从第一个数组和第二个数组中提取数据。第一个数组元素的意思是(page,per_page ... total_pages)。第二个数组意思是(id,first_name,last_name,来自三个组的化身)?
var obj = JsonUtility.FromJson<DataHandler>(JSONDataString);
答案 0 :(得分:1)
表示JSON的类错误。 请参见下面的正确表示形式:
public void ImportCertificate(StoreName storeName,
StoreLocation location,
byte[] certificateData)
{
X509Store x509Store = new X509Store(storeName, location);
X509Certificate2 certificate = new X509Certificate2(certificateData);
x509Store.Open(OpenFlags.ReadWrite);
x509Store.Add(certificate);
x509Store.Close();
}
别忘了将您的课程标记为可序列化。 使用属性:
public class Datum
{
public int id { get; set; }
public string first_name { get; set; }
public string last_name { get; set; }
public string avatar { get; set; }
}
public class RootObject
{
public int page { get; set; }
public int per_page { get; set; }
public int total { get; set; }
public int total_pages { get; set; }
public List<Datum> data { get; set; }
}
用法
[System.Serializable]
答案 1 :(得分:0)
您表示对象的类不正确。您可以在视觉工作室“编辑>选择性粘贴> JSON作为类粘贴”中从json生成一个类。
在您的情况下是
public class Rootobject
{
public int page { get; set; }
public int per_page { get; set; }
public int total { get; set; }
public int total_pages { get; set; }
public Datum[] data { get; set; }
}
public class Datum
{
public int id { get; set; }
public string first_name { get; set; }
public string last_name { get; set; }
public string avatar { get; set; }
}
您的“ JSONDataString” json字符串看起来不错,因此只需使用“ Newtonsoft.Json” nuget来解析对象:
var data = JsonConvert.DeserializeObject<Rootobject>(json);