gpt4 book ai didi

javascript - 创建对象时如何处理丢失的 JSON 数据? ( typescript )

转载 作者:搜寻专家 更新时间:2023-10-30 21:08:22 24 4
gpt4 key购买 nike

我正在从 Google Places API 检索数据并将其直接转换为对象以便在其他地方使用。

问题是有时响应没有所有字段,因此当由于 JSON 响应中缺少字段而无法正确创建对象时,这会导致我的应用程序崩溃。

这是我正在谈论的例子:

比如说响应的格式是这样的:

{ "a" : "some_str", "b" : "some_str", "c" : "some_str" }

但有时字段“b”会丢失,因此响应如下所示:

{ "a" : "some_str", "c" : "some_str" }

当我尝试将 JSON 数据解析为对象时,如何考虑这一点?

例如,这是我用来解析数据的代码:

this.http.get(URL).subscribe(details => {
let detailsObj = details.json();
let myObj: SomeObject = {
"fieldA" : detailsObj.a,
"fieldB" : detailsObj.b,
"fieldC" : detailsObj.c,
}
});

如果字段“b”在 JSON 响应中不存在,该值将在“detailsObj”上未定义,这会导致运行时错误,因为它正在尝试创建一个具有未定义字段的对象。

尽管有部分未定义的数据,我如何仍然创建对象?理想情况下,缺失的数据可以用空值填充。

任何正确方向的指示将不胜感激,感谢您的宝贵时间!

最佳答案

使用||b缺失时填入null:

"fieldB" : detailsObj.b || null,

或者更健壮,专门检查undefined:

"fieldB" : detailsObj.b === undefined ? null : detailsObj.b,

第一个选项更简洁易读,但如果 b0,它会将值设置为 null >false 或其他一些错误的值。

关于javascript - 创建对象时如何处理丢失的 JSON 数据? ( typescript ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48395342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com