我注意到在我的客户端代码中,我的服务响应缺少一些(但不是全部)属性。当我查看 Chrome 中的开发工具“网络”选项卡时,我发现服务响应似乎包含这些缺失的属性,但从 Angular http 客户端返回的对象却没有。因此,出于调试目的,我尝试配置我的 http 客户端请求选项,将响应正文解释为文本并返回字符串并记录它。然后我做了一个 JSON.parse(responseText) 。记录的responseText具有我期望的全套属性,但JSON.parse失败并出现意外的令牌异常。因此,在发现一些转义反斜杠似乎导致解析问题后,我尝试在响应和解析之间注入 JSON.stringify 。我还记录了字符串化响应,它仍然显示了全套预期属性。添加 stringify 后 JSON.parse 也通过了。但是,JSON.parse 导致原来丢失的属性被删除。在这种情况下我没有收到解析错误。只是缺少一些属性。
源字符串中第一个缺失的属性是一个名为 id 的简单属性,其中包含 UUID 字符串值。它后面的三个属性也丢失了。
{
"a": "A",
"b": "B",
"c": "C",
"id": "726abb0e-6cc6-4496-94a2-906439c06a30",
"1": 12345,
"2": "stringVal",
"3": "stringValue"
}
解析这个字符串的结果是
{
"a": "A",
"b": "B",
"c": "C"
}
完整的 JSON 要复杂得多,我在这里包含的是一个包含多个此类类型的数组中的单个实例。数组中的所有实例都缺少相同的属性。因此它不会停止解析完整的 json,并且仍然解析数组中的其他实例。
芜湖不芜
翻过高山走不出你
慕尼黑5688855
相关分类