我有一个非常长且复杂的 JSON 发送到外部 Web 服务。
JSON 具有同一级别的所有属性:
public class Request
{
[JsonProperty(PropertyName = "prop1a")]
public string Prop1A;
[JsonProperty(PropertyName = "prop2a")]
public string Prop2A;
[JsonProperty(PropertyName = "prop3a")]
public string Prop3A;
[JsonProperty(PropertyName = "prop1b")]
public string Prop1B;
[JsonProperty(PropertyName = "prop2b")]
public string Prop2B;
[JsonProperty(PropertyName = "prop3b")]
public string Prop3B;
// [...]
}
生成的 JSON:
// valid JSON
{ prop1a: "", prop2a: "", prop3a: "", prop1b: "", prop2b: "", prop3b: "" }
为了更好地工作,我在逻辑上将相似的属性分成更小的类:
public class Request
{
public AggregatedPropsA MyAggregatedPropsA;
public AggregatedPropsB MyAggregatedPropsB;
}
public class AggregatedPropsA
{
[JsonProperty(PropertyName = "prop1a")]
public string Prop1A;
[JsonProperty(PropertyName = "prop2a")]
public string Prop2A;
[JsonProperty(PropertyName = "prop3a")]
public string Prop3A;
}
问题是 json 字符串现在是无效字符串,因为属性在不同级别上序列化:
// invalid JSON
{ MyAggregatedPropsA: { prop1a: "", prop2a: "", prop3a: ""}, MyAggregatedPropsB: { prop1b: "", prop2b: "", prop3b: "" } }
是否有可能使用第二类结构获得像第一个这样的 JSON?