低调的鸵鸟 · jsoup 1.18.1 发布,Java ...· 1 月前 · |
纯真的柑橘 · excel怎么批量删除筛选出来的行-掘金· 11 月前 · |
悲伤的茄子 · oracle ...· 1 年前 · |
正直的酸菜鱼 · SQLyog基本操作(一)-菜单栏、操作数据 ...· 1 年前 · |
才高八斗的玉米 · Traefik ...· 1 年前 · |
当我尝试用以下方式序列化我的对象时,
JsonConvert.SerializeObject
出现了问题:
var statementOfAccount = new
main = new
@xm = "https://api-path.com",
RESTHeader = new
Responsibility = "Responsibility ",
RespApplication = "AR",
NLSLanguage = "AMERICAN"
};
给我:
{
"main": {
"xm": "https://api-path.com",
"RESTHeader": {
"Responsibility": "Responsibility",
"RespApplication": "AR",
"NLSLanguage": "AMERICAN"
}
因此,基本上是从@xm中删除@,请注意,我不能更改属性的名称,因此需要一个按原样序列化它的解决方案。
发布于 2022-08-15 11:24:28
一种方法是创建自定义类,而不是使用匿名。
public class Custom
[JsonProperty["@xm"]
public string @xm {get; set;}
}
由于您的匿名对象属性是已知的,并且不会导致任何属性重叠,所以另一种方法是在序列化后替换json字符串。
json=json.Replace("xm:","@xm:");
发布于 2022-08-15 12:13:16
这解决了我使用JsonPropertyName的问题,但是使用了JsonSerializer.Serialize而不是JsonConvert.SerializeObject,所以问题是我使用了一个匿名对象,就像大多数人建议的那样,但是使用JsonPropertyName只对JsonSerializer.Serialize起作用,它不适用于JsonConvert.SerializeObject
解决办法:
public class Main
[JsonPropertyName("@xm")]
public string @xm { get; set; }
public RESTHeader RESTHeader { get; set; }
public class RESTHeader
public string Responsibility { get; set; }
public string RespApplication { get; set; }
public string NLSLanguage { get; set; }
public class Root
public Main main { get; set; }
var statementOfAccount = new Root
main = new Main
@xm = "https://api-path",
RESTHeader = new RESTHeader
Responsibility = "Responsibility ",
RespApplication = "AR",
NLSLanguage = "AMERICAN"
纯真的柑橘 · excel怎么批量删除筛选出来的行-掘金 11 月前 |