TypeScript中使用TypedJson解析含null值的JSON Map如何保留null键值对
解决TypedJson解析时保留null值键值对的问题
我之前也碰到过类似的情况,TypedJson默认在反序列化过程中会忽略值为null的键值对,这就导致后端传来的Map<String, Object>里带null的键无法在前端的columns对象里体现。不过不用修改null为空字符串,通过调整配置就能解决,给你两个可行的方案:
方案一:解析时单独配置
在调用TypedJson.parse()的时候,传入ParseOptions并开启preserveNulls选项,这样当前解析操作会保留所有null值的键:
// 假设jsonString是后端返回的JSON字符串 const employee = TypedJson.parse(jsonString, Employee, { preserveNulls: true });
方案二:在类属性上全局配置
如果你希望这个columns属性每次解析都保留null值,可以直接在@JsonMember装饰器里添加配置:
@JsonObject() export class Employee { @JsonMember() public name: string; // 添加preserveNulls: true配置 @JsonMember({ preserveNulls: true }) public columns: { [name: string]: any }; }
这样配置后,后端传来的{ "myKey": null }这类键值对就会被完整解析到columns对象中,不会被忽略,完全满足你需要保留myKey: null形式的需求。
内容的提问来源于stack exchange,提问作者Bleamer
相关产品推荐
相关产品推荐

