Big*_*iny 5 javascript json object typescript
我正在从 Google Places API 检索数据并将其直接转换为对象以供在其他地方使用。
问题是,有时响应不包含所有字段,因此当由于 JSON 响应中缺少字段而无法正确创建对象时,这会导致我的应用程序崩溃。
这是我正在谈论的一个例子:
例如,响应的格式是这样的:
{ "a" : "some_str", "b" : "some_str", "c" : "some_str" }
Run Code Online (Sandbox Code Playgroud)
但有时字段“b”会丢失,因此响应如下所示:
{ "a" : "some_str", "c" : "some_str" }
Run Code Online (Sandbox Code Playgroud)
当我尝试将 JSON 数据解析为对象时,如何解释这一点?
例如,这是我用来解析数据的代码:
this.http.get(URL).subscribe(details => {
let detailsObj = details.json();
let myObj: SomeObject = {
"fieldA" : detailsObj.a,
"fieldB" : detailsObj.b,
"fieldC" : detailsObj.c,
}
});
Run Code Online (Sandbox Code Playgroud)
如果 JSON 响应中不存在字段“b”,则“detailsObj”上的值将是未定义的,这会导致运行时错误,因为它试图创建具有未定义字段的对象。
尽管数据部分未定义,如何仍然创建对象?理想情况下,缺失的数据可以用空值填充。
任何正确方向的指示将不胜感激,感谢您的宝贵时间!
缺失时用于||填写:nullb
"fieldB" : detailsObj.b || null,
Run Code Online (Sandbox Code Playgroud)
或者更加稳健并专门检查undefined:
"fieldB" : detailsObj.b === undefined ? null : detailsObj.b,
Run Code Online (Sandbox Code Playgroud)
第一个选项更简洁,更易于阅读,但它会将值设置为nullif bis0或false其他一些错误值。
| 归档时间: |
|
| 查看次数: |
6561 次 |
| 最近记录: |