Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何处理属性为空的json文件_Javascript_Json_Reactjs - Fatal编程技术网

Javascript 如何处理属性为空的json文件

Javascript 如何处理属性为空的json文件,javascript,json,reactjs,Javascript,Json,Reactjs,我需要读取json文件并将数据打印到表上 json文件有很多对象,以及对象、数组中的对象 json文件的示例 [ { "id_transaction": 116, "company": "ABC", "verified": true, "date": "2019-04-09T13:31:20.429Z", "bio_data": { "id": "string", "data": "string", "digital

我需要读取json文件并将数据打印到表上 json文件有很多对象,以及对象、数组中的对象

json文件的示例

[
  {
    "id_transaction": 116,
    "company": "ABC",
    "verified": true,
    "date": "2019-04-09T13:31:20.429Z",
    "bio_data": {
      "id": "string",
      "data": "string",
      "digital": [
        {
          "name": "value1",
          "digital": ""
        },
        {
          "name": "value2",
          "digital": "value2"
        },
        {
          "name": "",
          "digital": "value3"
        }       
      ]
    },
    "info_data": {
      "value1": "value1",
      "value2": "",
      "value3": "",
      "value4": "value4",
      "value5": 1.0,
      "value6": ""      
    }
  }
]
此json文件的任何数据都可以为null,对象
bio_data
info_data
可以为null,数组
digital
可以为null,其他简单的atributs(
company
date
等)可以为null

处理空值的最佳方法是什么? 现在,我正在处理每种情况,将空值更改为
-
,但这不是最明智的方法。举个例子:

id_transaction !== null ? id_transaction : ' - '
info_data !== null ? info_data.value1 : ' - '
bio_data.digital[0] !== undefined ? bio_data.digital[0].name] : '-'
我怎样才能创造一个功能来处理它? 或者存在更好的处理方法(我使用react)?

那么,当任何属性为空时,应用程序应该怎么做?如果它:

  • 跳过那个属性
  • 使用默认值,例如
    '-'
  • 抛出异常
您需要自己指定,因为没有标准答案

指定后,可以使用and-and或运算符(
&&
|
)稍微缩短代码。例如:

let name = bio_data.digital && bio_data.digital[0] && bio_data.digital[0].name || 'Unknown';
另见:


这是无效的JSON-
“value4”:boolean
无法解析。为什么需要处理它?如果只是将其打印到表中,那么如果它是空值,又有什么关系呢?只需将其显示为空值即可?这是编写
id\u事务的更简单方法!==无效的id_transaction:“-”
id_transaction | | |“-”
如果您不介意其他错误值,例如空字符串和0也可能被更改,那么如果您使用的是
JSON。parse
您还可以使用第二个“”参数来转换数据。您可以使用JSON.parse(“{a:null},”(key,value)=>value==null?“-”:value)将所有空值更改为
'-'
。@S\u>如果正常打印时不会出现任何错误,如果尝试分配给某个对象,则会出现错误。试着四处转转。