如何解决JSON.stringify 不适用于 Typescript 中对象的所有属性
JSON.stringify 不适用于 Typescript 中最外层对象的所有属性。 请参考下面的代码片段:
class Criterion {
'@CLASS' = 'xyz.abc.Criterion'
operator: string;
operand: string[];
field: string;
constructor(field:string,operator:string,operand: string[]) {
this.field = field;
this.operator = operator;
this.operand = operand;
}
}
class Filter {
'@CLASS': 'xyz.ada.Filter';
criteria: Criterion[];
constructor(criteria:Criterion[]) {
this.criteria=criteria;
}
}
var criterion = new Criterion("a","b",["c"]);
var a = new Filter([criterion]);
JSON.stringify(a);
console.log(JSON.stringify(a));
输出:
{"criteria":[{"@CLASS":"xyz.abc.Criterion","field":"a","operator":"b","operand":["c"]}]}
预期:
{"@CLASS":"xyz.ada.Filter","criteria":[{"@CLASS":"xyz.abc.Criterion","operand":["c"]}]}
它不会对 Filter 类对象的 @CLASS 属性进行字符串化。
解决方法
您的类过滤器中存在拼写错误。将两个点替换为:
'@CLASS'= 'xyz.ada.Filter';
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。