我有一个json对象:
{
"user": {
"id": "xxx"
},
"session": {
"id": "xxx"
}
}
现在我需要将json转换为类,
我的默认答案是将属性写为UserID,sessionID
但我希望像User.ID&amp ;;从可读性的角度来看,session.ID(这是不可能的)。
答案 0 :(得分:1)
制作基类:
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属性),则应该只执行此操作。
如果你只想要两个不同的变量,那么将它们解析为名为user
和session
的BaseId类的两个不同实例(显然不需要这样的具体类)
答案 1 :(得分:0)
您可以使用JsonProperty
类public class Model
{
[JsonProperty(PropertyName = "UserId")]
public int ID { get; set; }
[JsonProperty(PropertyName = "SessionId")]
public int ID1 { get; set; }
}
<LPNDetail>
<ItemName>5054807025389</ItemName>
<DistroNbr/>
<DistributionNbr>TR001000002514</DistributionNbr>
<OrderLine>2</OrderLine>
<RefField2/>
<RefField3>OU01180705</RefField3>
<RefField4>0002</RefField4>
<RefField5>Retail</RefField5>
<Qty>4</Qty>
<QtyUom>Unit</QtyUom>
</LPNDetail>
<LPNDetail>
<ItemName>5054807025563</ItemName>
<DistroNbr/>
<DistributionNbr>TR001000002514</DistributionNbr>
<OrderLine>4</OrderLine>
<RefField2/>
<RefField3>OU01180705</RefField3>
<RefField4>0004</RefField4>
<RefField5>Retail</RefField5>
<Qty>2</Qty>
<QtyUom>Unit</QtyUom>
</LPNDetail>
答案 2 :(得分:0)
我不确定我完全理解这个问题。如果我这样做,它会是这样的:
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; }
}
答案 3 :(得分:0)
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; } }
}
您可以编写此类型的模型,您可以在请求UserID和SessionID类型时获取数据。
下面的测试代码
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;
我被正确检查了。工作正常。