我有一個JSON對象:如何轉換,在同一類具有相同的名稱爲特性的兩個JSON性能
{
"user": {
"id": "xxx"
},
"session": {
"id": "xxx"
}
}
現在我需要JSON轉換成一類,
我的默認答案是寫屬性作爲用戶ID,會話ID
但我希望從User.ID & session.ID(這是不可能的)從可讀性的角度。
我有一個JSON對象:如何轉換,在同一類具有相同的名稱爲特性的兩個JSON性能
{
"user": {
"id": "xxx"
},
"session": {
"id": "xxx"
}
}
現在我需要JSON轉換成一類,
我的默認答案是寫屬性作爲用戶ID,會話ID
但我希望從User.ID & session.ID(這是不可能的)從可讀性的角度。
可以使用JsonProperty
類的Newtonsoft.Json
public class Model
{
[JsonProperty(PropertyName = "UserId")]
public int ID { get; set; }
[JsonProperty(PropertyName = "SessionId")]
public int ID1 { get; set; }
}
這實際上編譯?似乎你會有一個重複的標識符錯誤 – BradleyDotNET
嗨Rahul,實際上我有一些不同,你說什麼,我有一個名爲'用戶'的JsonProperty和'用戶'屬性具有內部JsonProperty與名稱'ID'有一些價值。現在我在'用戶'級別擁有另一個名爲'session'的JsonProperty,並且這個JSONProperty的內部名稱爲'ID' –
,感謝您提供Newtonsoft.json。 「[JsonPropertyName(」User/Id「)]」這個工作映射「用戶」屬性內部屬性「ID」值 –
做一個基類:
public class BaseId //Come up with a better name
{
public string Id { get; set; }
}
然後從這些類繼承它:
public class User : BaseId
{
//Other stuff if you want
}
public class Session : BaseId
{
//Other stuff if you want
}
但是你只能這樣做如果用戶和會話彼此有獨特的區別(但很明顯分享了ID pr operty)。
如果你只是想要兩個不同的變量,然後解析它們變成
命名user
和session
baseid之後類(顯然不需要具體的類這種方式)的兩種不同的情況下,我不知道我理解的完全問題。如果我要做到這一點,就應該是這樣的:
public class Foo
{
[JsonProperty("user")]
public User UserIdentity { get; set; }
[JsonProperty("session")]
public Session CurrentSession { get; set; }
}
public class User
{
[JsonProperty("id")]
string Id { get; set; }
}
public class Session
{
[JsonProperty("id")]
string Id { get; set; }
}
嗨阿爾曼,我想你說什麼可能無法正常工作,因爲用戶有一些其他的JsonProperties也與會話相同 –
我不確定我關注。您可以將其他屬性添加到會話或用戶,它不僅限於id。無論如何,你可以將它們鏈接起來。 – Arman
public class User
{
[JsonProperty("id")]
public string id { get; set; }
}
public class Session
{
[JsonProperty("id")]
public string id { get; set; }
}
public class MyJson
{
[JsonProperty("user")]
private User user { get; set; }
[JsonProperty("session")]
private Session session { get; set; }
public string UserID { get { return user.id; } }
public string SessionID { get { return session.id; } }
}
你可以寫這種類型的模型,您請求的用戶ID和會話ID的類型,你可以得到的數據。
在下面的示例代碼試井
var teststring = JsonConvert.DeserializeObject<JObject>("{\"user\": {\"id\": \"xxx\"},\"session\": {\"id\": \"xxx\"}");
var data = JsonConvert.DeserializeObject<MyJson>(teststring.ToString());
var session = data.SessionID;
var userId = data.UserID;
我是適當的檢查。它工作正常。
爲什麼不可能?只需編寫一個User類和一個Session類...... –
您只需要一個具有兩個屬性('user'和'session')的對象。這些屬性是具有名爲'id'的屬性的對象,但這沒有問題。 – dcg
我會在這裏留下這個:http://json2csharp.com/ –