首页 > 解决方案 > Javascript - 将 1 转换为真(示例)

问题描述

我有一个 JSON,如果值为 1,我想将 FUTURE_CALL 转换为 true,将 0 转换为 false。

我怎样才能做到这一点?我的例子不起作用。

var tickets = '{tickets: {
   "Tickets": [
      {
         "TICKET_ID": "",
         "TITLE": "",
         "DESCRIPTION": "",
         "CREATION_DATE": "",
         "COMPLETION_DATE": "",
         "CREATED_BY": "",
         "FUTURE_CALL": "",
         "TICKET_PRIORITY_DESCRIPTION": "",
         "TICKET_PRIORITY_CODE": "",
         "TICKET_CATEGORY_DESCRIPTION": "",
         "TICKET_CATEGORY_CODE": "",
         "TICKET_TYPE_CODE": "",
         "TICKET_TYPE_DESCRIPTION": "",
         "TICKET_TAG_CODE": "",
         "TICKET_TAG_DESCRIPTION": "",
         "TICKET_STATUS_CODE": "",
         "TICKET_STATUS_DESCRIPTION": "",
         "DUE_DATE": "",
         "ACCOUNT_ID": ""
      }
   ]
}}';

var updatedTickets = tickets;
for(var i = 0; i < updatedTickets.tickets['Tickets'].length; i++) {
     if(updatedTickets[i].tickets['Tickets'].FUTURE_CALL == 1) {
        updatedTickets[i].tickets['Tickets'].FUTURE_CALL = true;
     }
}

标签: javascriptjson

解决方案


首先,您的代码中有一个小问题:

updatedTickets[i].tickets['Tickets']

updatedTiclets是一个对象,它tickets['Tickets"]是一个数组,所以你必须:

updatedTickets.tickets['Tickets'][i]

那么您的比较应该可以工作,但最简单的是将其转换为数字:

if( +updatedTickets.tickets['Tickets'][i].FUTURE_CALL)

这将像0虚假和1真实一样起作用。

var updatedTickets = tickets;
for(const ticket of updatedTickets.tickets['Tickets']) k
 ticket.FUTURE_CALL =
     ticket.FUTURE_CALL === "1";        
}

推荐阅读