如何反序列化在C#PHP JSON到C#對象如何反序列化JSON
{ 「會計師」 這個JSON字符串:{ 「系統標識」: 「1」, 「FIRST_NAME」: 「測試」 , 「姓氏」: 「測試」, 「產品類型」: 「樣本」 }}
我試了一下,到目前爲止使用JsonConvert.DeserializeObject
var jsonObj = JsonConvert.DeserializeObject<AccountantData>(responseMessage);
這是我的模型
public class AccountantData
{
[JsonProperty("accountant")]
public List<UserData> Accountant { get; set; }
}
public class UserData
{
public UserData(int sysId, string firstName, string lastName, string productType)
{
SystemId = sysId;
FirstName = firstName;
LastName = lastName;
ProductType = productType;
}
[JsonProperty("sysid")]
public int SystemId { get; set; }
[JsonProperty("first_name")]
public string FirstName { get; set; }
[JsonProperty("last_name")]
public string LastName { get; set; }
[JsonProperty("product_type")]
public string ProductType { get; set; }
}
但這會導致一個錯誤
類型的異常 'Newtonsoft.Json.JsonSerializationException' 發生在Newtonsoft.Json.dll但在用戶代碼沒有處理
其他信息:不能反序列化當前JSON對象(例如{ 「名稱」: 「值」})成型 'System.Collections.Generic.List`1 [MyApp.UserData]',因爲類型要求JSON陣列(例如[1,2,3]),以正確地反序列化。
要修復此錯誤,請將JSON更改爲JSON數組(例如[1,2,3])或更改反序列化類型,以使其成爲正常的.NET類型(例如,不是像整數這樣的基本類型,不是像數組或List的集合類型),可以從JSON對象反序列化。 JsonObjectAttribute也可以添加到類型中,以強制它從JSON對象反序列化。
我使用json_encode得到rowdata後。我需要將其格式化爲數組,當我json_encode? –
如果我正確理解你的問題,不要認爲它與json_encode有關。如果您的JSON數據總是隻有一個UserData對象,那麼您可以更新您的AccountantData類。我已經用解釋更新了我的答案。 –