1
我正在为angular创建一个小模块,并且我遇到了检查我的JSON.parsed数据(如果它们正确)的情况。正确验证TypeScript中的JSON.parsed数据
read(): Position|null {
try {
...
let parsedData = JSON.parse(data);
if (parsedData && parsedData.x && parsedData.y)
return new Position(parsedData.x, parsedData.y);
} catch (e) {
...
}
return null;
}
好像不是一个很好的解决方案我,好像有一个在我以前字符串化的对象更多的属性,然后我需要检查他们中的每一个。我也不确定当分析数据是null
时会发生什么。是否有任何其他解决方案来检查特定数据?由于
这似乎是一个非常合理的解决方案。你关心什么?如果你正在解析的JSON有其他字段,它不会影响你上面写的逻辑。而且你将解析包装在一个try-catch中,它也应该处理任何格式不正确的JSON情况。 – Sal
我很担心未来会更改以JSON存储的对象。如果我需要更改对象并期望解析对象具有更多属性,那么我需要检查每个属性是否已设置。我正在考虑检查分析数据的实例,但它可能不起作用,因为当我将Position对象字符串化,然后解析它不再是Position的实例时,我是对的吗? –
如果你的json字符串已经是一个序列化的Position对象,你实际上不需要做任何检查。您可以**返回JSON.parse(数据)作为位置** – Sal